将数据保存在KeyStore上并使用钥匙串检索它

时间:2016-07-20 08:57:11

标签: android keystore keychain

我想在keyStore中保存一些敏感数据(字符串)。我发现keyStore只接受secretKey个对象。但是,我无法存储它,并使用keyChain

alias名称使用secretKey回调稍后进行检索

任何帮助将不胜感激..!

2 个答案:

答案 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/

https://www.mkyong.com/java/java-md5-hashing-example/

http://www.asjava.com/core-java/java-md5-example/

答案 1 :(得分:-1)