求SHA1算法JAVA代码 如何改为用PB编写
gjm88 2015-01-02 07:09:17 以下代码用JAVA编写的,请求用PB编写。
接口参数sSign是使用SHA-1算法对上传的消息内容xmlData进行计算得到的消息摘要。
sSign值计算示例如下:
// 字节数组转换为16进制的字符串
private static String byteArrayToHex(byte[] byteArray) {
char[] hexDigits = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
char[] resultCharArray = new char[byteArray.length * 2];
int index = 0;
for (byte b : byteArray) {
resultCharArray[index++] = hexDigits[b >>> 4 & 0xf];
resultCharArray[index++] = hexDigits[b & 0xf];
}
return new String(resultCharArray);
}
//计算消息摘要
public static String getMessageDigest(String str, String encName) {
byte[] digest = null;
if (StringUtils.isBlank(encName)) {
encName = "SHA-1";
}
try {
MessageDigest md = MessageDigest.getInstance(encName);
md.update(str.getBytes());
digest = md.digest();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return byteArrayToHex(digest);
}
//sSign的计算
String sSign = getMessageDigest(xmlData, “SHA-1”);