我不想计算文件的校验和,只是想知道一个给定的字符串是否是有效的校验和。
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哈希值。
如果你正在查看它们的十六进制字符串表示形式,那么SHA1将会显示40个十六进制数字,而MD5将会显示32个十六进制数字。
正则表达式 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...");
MD5 验证器:
public boolean isValidMD5(String s) {
return s.matches("[a-fA-F0-9]{32}");}
将字符串值中的"-"移除。
^[a-fA-F0-9]{40}$
。 - michaeltintiuc