문자열이 유효한 MD5인지 SHA1 체크섬 문자열인지 확인하려면 어떻게해야합니까?
문제
주어진 문자열이 유효한 체크섬인지 확인하기 위해 파일의 체크섬을 계산하고 싶지 않습니다.
해결책
SHA1 검증 자 :
public boolean isValidSHA1(String s) {
return s.matches("^[a-fA-F0-9]{40}$");
}
MD5 검증 자 :
public boolean isValidMD5(String s) {
return s.matches("^[a-fA-F0-9]{32}$");
}
다른 팁
모든 160 비트 시퀀스는 가능한 SHA1 해시입니다. 임의의 128 비트 시퀀스는 가능한 MD5 해시입니다.
당신이 그들의 16 진 문자열 표현을보고 있다면, SHA1은 40 개의 16 진수 숫자처럼 보이며 MD5는 32 개의 16 진수 숫자처럼 보입니다.
MD5 검증 자 :
public boolean isValidMD5(String s) {
return s.matches("[a-fA-F0-9]{32}");}
문자열 값의 "-"를 제거하십시오.
Regexp SHA-1
public static final String SHA_1 = "^([0-9A-Fa-f]{2}[:]){19}([0-9A-Fa-f]{2})$";
public boolean isValidSHA1(String s) {
return s.matches(SHA_1);
}
boolean isValidSHA1 = isValidSHA1("12:45:54:3A:99:24:52:EA...");
제휴하지 않습니다 StackOverflow