我有以下Java加密方法,我想知道它的等价PHP解密是什么,如果有的话。如果没有PHP的等效PHP解密函数,那么我还有其他选择吗?提前谢谢。
private String encrypt(String string, String key) {
StringBuilder enc = new StringBuilder();
try {
Mac mac = Mac.getInstance("HMACSHA256");
SecretKeySpec secret = new SecretKeySpec(key.getBytes(), "HMACSHA256");
mac.init(secret);
byte[] digest = mac.doFinal(string.getBytes());
for (byte b : digest) {
String hex = Integer.toHexString(0xff & b);
if (hex.length() == 1)
enc.append('0');
enc.append(hex);
}
} catch (Exception e) {
}
return enc.toString();
}
答案 0 :(得分:1)
SHA算法是单向哈希,这意味着你永远不能解密它们。
答案 1 :(得分:0)
看看php.net:http://www.php.net/manual/en/function.hash-hmac.php
一个相同的方法是
hash_hmac("sha256", $data, $key, false);
当然它不是加密,而是哈希函数。所以它不可逆。