我在做小程序签名完整性验证时,rawData+session_key,做了sha1(rawData+session_key),但是我的rawData中有汉字,得到的signature与从服务接口中得到的signature不一样,因为rawData中有汉字,这个如何处理???
- 当前 Bug 的表现(可附上截图)
- 预期表现
- 复现路径
- 提供一个最简复现 Demo
String signature1= AESUtil.getSha1(sha1Content);/**
* sha1签名
* @param content
* @return
*/
public static String getSha1(String content){
if(content==null || StringUtils.isEmpty(content)){
return null;
}
char hexDigits[]={'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
try {
MessageDigest mdTemp=MessageDigest.getInstance("SHA1");
mdTemp.update(content.getBytes("UTF-8"));
byte[] md=mdTemp.digest();
int j=md.length;
char[] buffer=new char[j*2];
int k=0;
for(int i=0;i<j;i++){
byte byte0=md[i];
buffer[k++]=hexDigits[byte0>>>4 & 0xf];
buffer[k++]=hexDigits[byte0&0xf];
}
return new String(buffer);
}catch (Exception e){
e.printStackTrace();
}
return null;
}
