首页新闻找找看学习计划

C#中给出了RSA加密时候的模数Modulus与加密指数Exponent,如何利用openssl的类库生成公钥

0
悬赏园豆:100 [已解决问题] 解决于 2016-12-30 15:03

   网上看了好多东西,也有一些思路,但是依旧没有得到结果,因为openssl类库,与JAVA互通,和前台JS也互通,所以要用这个类库

Modulus="008baf14121377fc76eaf7794b8a8af17085628c3590df47e6534574efcfd81ef8635fcdc67d141c15f51649a89533df0db839331e30b8f8e4440ebf7ccbcc494f4ba18e9f492534b8aafc1b1057429ac851d3d9eb66e86fce1b04527c7b95a2431b07ea277cde2365876e2733325df04389a9d891c5d36b7bc752140db74cb69f";

PublicExponent = "010001";  

利用上边的模数Modulus和加密指数Exponent得到RSA的公钥,利用公钥加密

hayhx的主页 hayhx | 初学一级 | 园豆:2
提问于:2016-12-30 12:55
< >
分享
最佳答案
0

你是想C#利用上面的公钥?也就是说把上面公钥转成C#需要的xml?

收获园豆:100
孤零落叶寒 | 小虾三级 |园豆:564 | 2016-12-30 13:51

公钥加密,私钥解密,但是现在给了两个指数,这两个指数是得到公钥的,我需要知道如何用这两个指数得到公钥

hayhx | 园豆:2 (初学一级) | 2016-12-30 13:53

@Hyaha: C#用的是xml,里面是base64编码的。你上面的就是hex格式,只要把上面hex格式转成byte数组,然后在base64编码就可以了。

 public static byte[] Hex2Byte(string byteStr)
        {
            try
            {
                byteStr = byteStr.ToUpper().Replace(" ", "");
                int len = byteStr.Length / 2;
                byte[] data = new byte[len];
                for (int i = 0; i < len; i++)
                {
                    data[i] = Convert.ToByte(byteStr.Substring(i * 2, 2), 16);

                }
                return data;
            }
            catch (Exception ex)
            {
                // SystemLog.ErrLog("bin2byte失败:" + ex.Message);
                return new byte[] { };
            }
        }

用上面hex转byte[]可以然后再base64,可以得到

M:AIuvFBITd/x26vd5S4qK8XCFYow1kN9H5lNFdO/P2B74Y1/Nxn0UHBX1FkmolTPfDbg5Mx4wuPjkRA6/fMvMSU9LoY6fSSU0uKr8GxBXQprIUdPZ62bob84bBFJ8e5WiQxsH6id83iNlh24nMzJd8EOJqdiRxdNre8dSFA23TLaf

E:AQAB

然后再根据xml格式组成xml就是C#的公钥

孤零落叶寒 | 园豆:564 (小虾三级) | 2016-12-30 14:00

@孤零落叶寒: 我去试下,但是用Security这个类库和JAVA不互通

hayhx | 园豆:2 (初学一级) | 2016-12-30 14:11

@Hyaha: 你说的不互通是指什么?C#加密后java解不出来?

孤零落叶寒 | 园豆:564 (小虾三级) | 2016-12-30 14:18

@孤零落叶寒: 我加你Q问你一下可以嘛,我一个朋友是太忙了,不好意思老问

hayhx | 园豆:2 (初学一级) | 2016-12-30 14:27

@孤零落叶寒: 简单的说,你说的东西是Security这个类库提供的方法组合成的公钥,但是需要的是用openssl这个类库生成公钥

hayhx | 园豆:2 (初学一级) | 2016-12-30 14:40

@孤零落叶寒: 我上边给出了来的是前台JS给的参数,我想用C#重写加密过程,Security这个类库加密之后的字符串长度是不对的,用openssl这个类库加密之后的字符串是正确的

hayhx | 园豆:2 (初学一级) | 2016-12-30 14:42

@Hyaha: 894969361

孤零落叶寒 | 园豆:564 (小虾三级) | 2016-12-30 14:44
其他回答(1)
0

后来解决了嘛

EApple | 园豆:139 (初学一级) | 2017-05-26 14:25
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册