我想将一些敏感数据(字符串)保存在keyStore中。我发现keyStore只接受secretKey对象。但是,我不能通过keyChain回调使用secretKey的alias名称来存储和检索它
任何帮助都将不胜感激!
发布于 2016-07-21 14:21:29
我觉得你看起来有点像MD5。通过获取任意长度的字符串并将其编码为128位指纹来创建MD5散列。使用MD5算法对相同的字符串进行编码将始终产生相同的128位散列输出。在诸如流行的MySQL之类的数据库中存储密码、信用卡号码或其他敏感数据时,MD5哈希通常与较小的字符串一起使用。此工具提供了一种快速而简单的方法,可以从长度不超过256个字符的简单字符串对MD5散列进行编码。
MD5哈希还用于确保文件的数据完整性。由于MD5散列算法始终为相同的给定输入生成相同的输出,因此用户可以将源文件的散列与新创建的目标文件的散列进行比较,以检查其是否完整且未被修改。
使用MD5对字符串进行哈希处理:
公共类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;
}}
参考:http://viralpatel.net/blogs/java-md5-hashing-salting-password/
https://www.mkyong.com/java/java-md5-hashing-example/
http://www.asjava.com/core-java/java-md5-example/
发布于 2016-07-20 17:01:18
https://stackoverflow.com/questions/38476728
复制相似问题