我想在keyStore
中保存一些敏感数据(字符串)。我发现keyStore
只接受secretKey
个对象。但是,我无法存储它,并使用keyChain
alias
名称使用secretKey
回调稍后进行检索
任何帮助将不胜感激..!
答案 0 :(得分:0)
我认为你看起来像MD5。通过获取任意长度的字符串并将其编码为128位指纹来创建MD5哈希。使用MD5算法对相同的字符串进行编码将始终产生相同的128位散列输出。当在诸如流行的MySQL之类的数据库中存储密码,信用卡号或其他敏感数据时,MD5哈希通常与较小的字符串一起使用。此工具提供了一种快速简便的方法,可以从长度最多为256个字符的简单字符串中对MD5哈希进行编码。
MD5哈希还用于确保文件的数据完整性。由于MD5哈希算法始终为同一给定输入生成相同的输出,因此用户可以将源文件的哈希与目标文件的新创建哈希进行比较,以检查它是否完整且未修改。
使用MD5哈希字符串:
public class JavaMD5Hash {
public static void main(String[] args) {
String password = "MyPassword123";
System.out.println("MD5 in hex: " + md5(password));
System.out.println("MD5 in hex: " + md5(null));
//= d41d8cd98f00b204e9800998ecf8427e
System.out.println("MD5 in hex: "
+ md5("The quick brown fox jumps over the lazy dog"));
//= 9e107d9d372bb6826bd81d3542a419d6
}
public static String md5(String input) {
String md5 = null;
if(null == input) return null;
try {
//Create MessageDigest object for MD5
MessageDigest digest = MessageDigest.getInstance("MD5");
//Update input string in message digest
digest.update(input.getBytes(), 0, input.length());
//Converts message digest value in base 16 (hex)
md5 = new BigInteger(1, digest.digest()).toString(16);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return md5;
}
}
referance: http://viralpatel.net/blogs/java-md5-hashing-salting-password/
答案 1 :(得分:-1)