「単純な」文字列暗号化アルゴリズムを 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==