最近和A公司合作,对方提供的接口是java的。post数据需要用RSA加密,
签名数据需要base64
调用接口一直返回签名不正确小弟对java一窍不通,请教各位大大需要怎么修改我的C#签名代码。。
//对数据签名
public static string HashAndSign(string str_DataToSign, string str_Private_Key)
{ byte[] DataToSign = Encoding.GetEncoding("UTF-8").GetBytes(str_DataToSign);
RSACryptoServiceProvider key = new RSACryptoServiceProvider(); byte[] signed = key.SignData(DataToSign,"sha1");
return Convert.ToBase64String(signed);
}
对方demo的java调用
String sign = Base64.encodeBase64String(SignatureUtil.sign(parameter, PRIVATE_KEY_DATA,
SIGN_TYPE));对方demo的java获取签名
/**
* 采用提供的算法签名数据
*
* @param text 待签名内容
* @param privateKeyData 私钥字符串信息
* @param algorithm 签名算法
* @return 签名后的字节数组
*/
public static byte[] sign(String text, String privateKeyData, String algorithm) {
try {
Signature sign = Signature.getInstance(algorithm.equals("RSA") ? RSA_SINGATURE
: algorithm); sign.initSign(getPrivateKey(privateKeyData, algorithm)); sign.update(text.getBytes()); return sign.sign(); } catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (InvalidKeyException e) {
e.printStackTrace();
} catch (SignatureException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}JavaC#RSA算法base64
签名数据需要base64
调用接口一直返回签名不正确小弟对java一窍不通,请教各位大大需要怎么修改我的C#签名代码。。
//对数据签名
public static string HashAndSign(string str_DataToSign, string str_Private_Key)
{ byte[] DataToSign = Encoding.GetEncoding("UTF-8").GetBytes(str_DataToSign);
RSACryptoServiceProvider key = new RSACryptoServiceProvider(); byte[] signed = key.SignData(DataToSign,"sha1");
return Convert.ToBase64String(signed);
}
对方demo的java调用
String sign = Base64.encodeBase64String(SignatureUtil.sign(parameter, PRIVATE_KEY_DATA,
SIGN_TYPE));对方demo的java获取签名
/**
* 采用提供的算法签名数据
*
* @param text 待签名内容
* @param privateKeyData 私钥字符串信息
* @param algorithm 签名算法
* @return 签名后的字节数组
*/
public static byte[] sign(String text, String privateKeyData, String algorithm) {
try {
Signature sign = Signature.getInstance(algorithm.equals("RSA") ? RSA_SINGATURE
: algorithm); sign.initSign(getPrivateKey(privateKeyData, algorithm)); sign.update(text.getBytes()); return sign.sign(); } catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (InvalidKeyException e) {
e.printStackTrace();
} catch (SignatureException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}JavaC#RSA算法base64
http://download.csdn.net/detail/pcwe2002/6029107