gpt4 book ai didi

java - 需要帮助将一些 Java 加密转换为 PHP

转载 作者:行者123 更新时间:2023-12-01 15:56:37 26 4
gpt4 key购买 nike

我正在尝试将一个“简单”的字符串加密算法从 Java 移植到 PHP,它只使用了特定 Java 库中足够晦涩难懂的部分,这让我头疼不已。我希望 SO 社区能够提供帮助。这是 Java:

public static String encode(String str) throws Exception {
MessageDigest md = MessageDigest.getInstance("SHA-1");
md.reset();
return (new BASE64Encoder()).encode(md.digest(str.getBytes("UTF-8")));
}

直觉上,我认为 PHP 中的等价物是这样的:

base64_encode(sha1($str));

但这不起作用。我猜这与 getBytes 的使用有关?

<小时/>

编辑:以下是我得到的几个示例:

  • “花园”的 Java 编码:sa3lMQV/UcKZJHkzXQO3dK/etvo=
  • “花园”的 PHP 编码:YjFhZGU1MzEwNTdmNTFjMjk5MjQ3OTMzNWQwM2I3NzRhZmRlYjZmYQ==

  • “WhyJavaWhy”的 Java 编码:oJTJIq6WJM8P9rFPnZdoyK/WBK4=

  • “WhyJavaWhy”的 PHP 编码:YTA5NGM5MjJhZTk2MjRjZjBmZjZiMTRmOWQ5NzY4YzhhZmQ2MDRhZQ==

最佳答案

这有效:

base64_encode(sha1($str, TRUE));

$ php -r "echo base64_encode(sha1('garden', TRUE));"
sa3lMQV/UcKZJHkzXQO3dK/etvo=

关于java - 需要帮助将一些 Java 加密转换为 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4928311/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com