在做公司项目时,提到要有安全整改,例如需要将保存到sharedPreference中的密码等敏感信息,进行加密保存。
在网上查找了关于AES的一些加密解密方法,但有些方法可以进行加密,但解密的不是原来的值,下面的方法是经过自己验证后可以使用的:
public static final String AES_KEY_NUMBER = "hpgaerjnaoouekvs";
private final static String HEX = "0123456789ABCDEF";
public static String encryptAES(String cleartext,String seed) {
try {
KeyGenerator kgen = KeyGenerator.getInstance("AES");
SecureRandom sr = SecureRandom.getInstance("SHA1PRNG", "Crypto");
sr.setSeed(seed.getBytes());
kgen.init(128, sr); // 192 and 256 bits may not be available
SecretKey skey = kgen.generateKey();
byte[] raw = skey.getEncoded();
SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
在网上查找了关于AES的一些加密解密方法,但有些方法可以进行加密,但解密的不是原来的值,下面的方法是经过自己验证后可以使用的:
public static final String AES_KEY_NUMBER = "hpgaerjnaoouekvs";
private final static String HEX = "0123456789ABCDEF";
public static String encryptAES(String cleartext,String seed) {
try {
KeyGenerator kgen = KeyGenerator.getInstance("AES");
SecureRandom sr = SecureRandom.getInstance("SHA1PRNG", "Crypto");
sr.setSeed(seed.getBytes());
kgen.init(128, sr); // 192 and 256 bits may not be available
SecretKey skey = kgen.generateKey();
byte[] raw = skey.getEncoded();
SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");