RSA加密 JAVA中如何把C语言中的数组 转换为Java 中的BigInteger

SuperDBG1 2018-02-27 06:34:45
我刚刚接触加密算法 想请教一个如下的问题:
模型是将C语言中的验证签名的方式 移植到java中
C 代码如下:

static const unsigned char EncPubKey[128] =
{
0xB2,0xC3,0x5E,0x20,0xCB,0x7C,0x8F,0xEE,0xAC,0xDD,0x46,0x5B,0x53,0x58,0x52,0x60,
0x87,0xBD,0x32,0xB2,0xAD,0x19,0x8B,0xD1,0x36,0x8F,0x76,0xB2,0x6B,0x42,0x84,0x9B,
0x87,0x35,0x5C,0x2B,0x2B,0x4A,0x76,0x0F,0x67,0x57,0x1E,0xC9,0x9E,0xE2,0x55,0x57,
0x84,0x9C,0xCB,0xDB,0xE6,0xA7,0x21,0x2F,0xCF,0xCA,0x18,0xF0,0x00,0xAC,0x03,0xAD,
0x70,0x9E,0xCC,0xC0,0xFF,0x5D,0x45,0xEF,0x5F,0xD4,0x22,0x5F,0xE7,0x03,0x99,0x0D,
0xEB,0x22,0x61,0x45,0x2B,0xDA,0x1F,0xD1,0x34,0x69,0xC0,0x21,0xC8,0xBA,0xD4,0x68,
0x36,0x8A,0xE9,0x17,0xF1,0x71,0x9C,0x14,0x9F,0xFF,0x68,0x4C,0x4A,0xDF,0x09,0x9C,
0xC1,0x6C,0x94,0x8A,0x59,0xD8,0xE5,0x72,0xD4,0x72,0xB5,0xB5,0x3A,0x85,0x75,0xBB,
};

rsa = RSA_new();
rsa->n = BN_bin2bn(EncPubKey, 128, rsa->n);
rsa->e = BN_bin2bn((unsignedchar*)"\x00\x01\x00\x01", 4, rsa->e);
rv = RSA_public_encrypt(128, rsa_key, dkey, rsa, RSA_NO_PADDING);


我现在想移植到java中 想利用如下的方法生成公钥:
public static PublicKey getPublicKey(String modulusStr, String exponentStr) throws Exception{ 
BigInteger modulus=new BigInteger(modulusStr);
BigInteger exponent=new BigInteger(exponentStr);
RSAPublicKeySpec publicKeySpec=new RSAPublicKeySpec(modulus, exponent);
KeyFactory keyFactory=KeyFactory.getInstance("RSA");
return keyFactory.generatePublic(publicKeySpec);
}

令我困惑的是如何把C语言中的数组中的数据装换成java中的BigInteger
...全文
382 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
SuperDBG1 2018-02-27
  • 打赏
  • 举报
回复
是不是这样转换就可以了 BigInteger bigInteger = new BigInteger(byte[] );
SuperDBG1 2018-02-27
  • 打赏
  • 举报
回复
希望各位大神不吝赐教

51,410

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧