我必须在我的java应用程序中运行这些命令:
openssl dgst -sha1 -sign file.pem -out output.sha1 input.txt
openssl enc -base64 -in output.sha1 -out output2.b64 -A
任何库是否帮助我在我的java服务器中运行此代码?
答案 0 :(得分:1)
看起来您只是尝试使用SHA1正确加密字符串? Java已经为此提供了包,而无需使用OpenSSL。
例如,查看以下函数:
public static byte[] encrypt(String x) throws Exception {
java.security.MessageDigest digest = null;
digest = java.security.MessageDigest.getInstance("SHA-1");
digest.reset();
digest.update(x.getBytes("UTF-8"));
return digest.digest();
}
从这一点开始,你可以对它进行base64编码或者你想对输出做什么。
- 编辑包括带密钥的哈希
private String sha1(String s, String keyString) throws UnsupportedEncodingException, NoSuchAlgorithmException, InvalidKeyException {
SecretKeySpec key = new SecretKeySpec((keyString).getBytes("UTF-8"), "HmacSHA1");
Mac mac = Mac.getInstance("HmacSHA1");
mac.init(key);
byte[] bytes = mac.doFinal(s.getBytes("UTF-8"));
return new String( Base64.encodeBase64(bytes));
}