110,537
社区成员
发帖
与我相关
我的任务
分享
String keystr="私钥";
byte[] keybyte= HexBin.decode(keystr);
PKCS8EncodedKeySpec pkcs8EncodedKeySpec = new PKCS8EncodedKeySpec(keybyte);
KeyFactory keyFactory = KeyFactory.getInstance("EC") ;
PrivateKey privateKey = keyFactory.generatePrivate(pkcs8EncodedKeySpec) ;
Signature signature = Signature.getInstance("SHA1withECDSA");
signature.initSign(privateKey);
signature.update(src.getBytes(“UTF-8”));
byte[] arr = signature.sign();
sign = HexBin.encode(arr);
for (int i = 0; i < BASELENGTH; i++)
{
hexNumberTable[i] = -1;
}
而java中byte默认值是-1;
C#中在签名接收的值是byte[] 而不是sbyte[].
导致一直报超过byte最小值的错误。