현재 비밀번호를 인코딩 중입니다. 암호를 해독해야합니다. 다음은 인코딩 할 코드입니다. 원본 암호를 비교하려고합니다. MessageDigest에 대해 일방적 인 방법이라고 연구했습니다. 원본 메시지를받는 방법을 모릅니다. 우리는 디코드 방법을 가지고 있지만 원래 암호 인 Base64.decode를 제공하지 않습니다.MessageDigest, Base64로 디코딩하는 방법
public static synchronized String getMD5_Base64(String input) {
if (!isInited) {
isInited = true;
try {
digest = MessageDigest.getInstance("MD5");
} catch (Exception ex) {
}
}
if (digest == null)
return input;
// now everything is ok, go ahead
try {
digest.update(input.getBytes("UTF-8"));
} catch (java.io.UnsupportedEncodingException ex) {
}
byte[] rawData = digest.digest();
byte[] encoded = Base64.encode(rawData);
String retValue = new String(encoded);
return retValue;
}
}
안녕 Jherico. 문제는 현재 암호에서 이전 암호의 연속 문자가 4 개가 아니므로 MD5 Base64의 패턴을 얻으려는 시도가 잘못되었다는 것입니다. 그래서 나는 원래 암호로 돌아가서 비교하려고 노력하고있었습니다. – Perry
이전 암호를 해독하고 MD5를 새 암호로 만들고 MD5가 만든 내용을 비교하면 궁금합니다. 내가 어떻게해야하는지 잘 모르겠다. :) – Perry
불가능합니다. 암호화 해시의 포인트는 모든 출력 비트가 모든 입력 비트의 영향을받을 수 있다는 것입니다.보유하고있는 데이터와 비교할 수있는 비교 방법은 없습니다. – Jherico