Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
这种Java加密方法的等效PHP解密是什么?_Java_Php_String_Encryption - Fatal编程技术网

这种Java加密方法的等效PHP解密是什么?

这种Java加密方法的等效PHP解密是什么?,java,php,string,encryption,Java,Php,String,Encryption,我有下面的Java加密方法,我想知道它的等效PHP解密是什么,如果有。如果PHP没有等效的PHP解密函数,那么我还有什么其他选项?提前谢谢 private String encrypt(String string, String key) { StringBuilder enc = new StringBuilder(); try { Mac mac = Mac.getInstance("HMACSHA256"); SecretKeySpe

我有下面的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();
}

SHA算法是单向散列,这意味着您永远无法解密它们。

只要看看php.net:

同样的方法是

hash_hmac("sha256", $data, $key, false);

当然,这不是加密,而是散列函数。所以它是不可逆的。

谢谢你的回答。您是否可以向sha256建议一种可逆的替代方法?您必须使用一个加密函数,如:很高兴知道您从封闭式问题中学到了什么。