我正在尝试将一个“简单”的字符串加密算法从 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==