エキサイトのエンジニア岩藤です。
sample.php
<?php $md5 = md5("エキサイト"); echo $md5 . "\n";
PHP sample.php 2d56c309fdea63868f7397ebceba1867
Sample.java(サンプルはSpring Shellです)
@ShellMethod(value = "文字をmd5で暗号化する md5 text", key = "md5" , group = "md5") public String md5(String text) { return DigestUtils.md5Hex(text); }
shell:>md5 エキサイト 2d56c309fdea63868f7397ebceba1867
ちなみに方法論として上記にいきつく前に、最初は下記の方法でJava側は変換してたんですが、うまくいかず。 色々頑張ってしまったんですが、普通にシンプルにできたんですね、という事で今回メモとして残します。
↓
最初うまくいかなかった書き方
try { String key = this.articleCode + "-" + this.articleId; byte[] md5Bytes = MessageDigest.getInstance("MD5").digest(key.getBytes(StandardCharsets.UTF_8)); return new BigInteger(1, md5Bytes).toString(16); } catch (NoSuchAlgorithmException e) { throw new RuntimeException("get token error"); }
上記だと先頭0の場合に、Java側で先頭0が削られてしまい一致せずではまりました。
PHP側 032e3f03122aa5162dd4a5351539b3ea Java側 32e3f03122aa5162dd4a5351539b3ea