
项目中遇到的问题
官方案例中只给了python代码,对于指定内容进行sha1加密
def _sig(content_md5, url, date):
sha1 = hashlib.sha1(app_key.lower().encode('utf-8'))
sha1.update(content_md5.encode('utf-8'))
sha1.update(url.encode('utf-8'))
sha1.update("application/json".encode('utf-8'))
sha1.update(date.encode('utf-8'))
return "WPS-3:%s:%s" % (app_id, sha1.hexdigest())
需要使用java实现上述功能
private static final int HEX = 16;
private static final int SHA_FF = 0xFF;
private static final int SHA_100 = 0x100;
public static String encryptSHA(final String msg, String salt) {
StringBuilder sb = new StringBuilder();
try {
MessageDigest md = MessageDigest.getInstance("SHA-1");
md.update(salt.getBytes());
byte[] bytes = md.digest(msg.getBytes());
for (int i = 0; i < bytes.length; i++) {
sb.append(Integer.toString((bytes[i] & SHA_FF) + SHA_100, HEX).substring(1));
}
} catch (final Exception e) {
e.printStackTrace();
}
return sb.toString();
}
java中加密的明文msg相当于python中sha1.update内容