다른 프로그램의 암호를 저장하는 데 동일한 MySQL 테이블을 사용하고 있습니다. 하나는 Java로 작성되고 다른 하나는 PHP로 작성됩니다.MD5와 소금을 사용하여 Java에서 암호 암호화
나는이 스크립트를 사용하여 PHP를 통해 비밀번호를 저장하고 :
encrypted_password= md5(md5('added_salt').md5(md5('plain_password')));
나는 위와 같이 MD5와 소금을 사용하여 Java에서 암호를 암호화해야합니다. 나는 자바 코드를 작성하지만 출력이 다릅니다입니다 :
MessageDigest md = MessageDigest.getInstance("MD5");
String salts = "a,d,d,e,d,_,s,a,l,t";
String salttmps[] = salts.split(",");
byte salt[] = new byte[salttmps.length];
for (int i = 0; i < salt.length; i++) {
salt[i] = Byte.parseByte(salttmps[i]);
}
md.update(salt);
md.update(password.getBytes());
byte byteData[] = md.digest();
StringBuffer sb = new StringBuffer();
for (int i = 0; i < byteData.length; i++) {
sb.append(Integer.toString((byteData[i] & 0xff) + 0x100, 16).substring(1));
}
password = sb.toString();
내가 자바 코드를 수정하고 PHP와 같은 출력을 생성해야합니다.
(http://stackoverflow.com/questions/401656/ :
난 당신이 뭔가를해야 할 것 같아요 secure-hash-and-salt-for-ph-passwords) – kero
다른 옵션이 있습니까? 이미 MD5를 사용하는 PHP 응용 프로그램이 있습니다. –
http://stackoverflow.com/questions/4183646/java-md5-the-php-way – cy3er