定义所需要用到的变量
private static final String ENCRYPTION_KEY = "HI, I'M UPYOU.";
private static final String CHARSET_NAME = "UTF-8";
private static final String ALGORITHM_NAME = "DES";private static Key key;
将ENCRYPTION_KEY作为一个加密密钥,将ENCRYPTION_KEY转成Key类型。
static { try { // 生成 ALGORITHM_NAME 算法对象 KeyGenerator edsAlgorithmInstance = KeyGenerator.getInstance(ALGORITHM_NAME); // 使用SHA1安全策略 SecureRandom sha1PRNG = SecureRandom.getInstance("SHA1PRNG"); // 设置密钥 ENCRYPTION_KEY sha1PRNG.setSeed(ENCRYPTION_KEY.getBytes()); // 初始化KeyGenerator对象 edsAlgorithmInstance.init(sha1PRNG); //生成 key key = edsAlgorithmInstance.generateKey(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } }
创建对字符串加密方法 encrypetString
public static String encryptString(){}
encrypetString方法中操作
需要使用BASE64Encoder将加密后的结果转成 String
BASE64Encoder base64Encoder = new BASE64Encoder();
得到待加密字符串基于CHARSET_NAME编码的byte[]
byte[] bytes = str.getBytes(CHARSET_NAME);
创建基于ALGORITHM_NAME的加密算法
Cipher cipher = Cipher.getInstance(ALGORITHM_NAME);
初始化加密设置,使用无三参初始化方式。
cipher.init(Cipher.ENCRYPT_MODE, key);
将密码进行加密,此处返回的是加密后的byte[]对象
byte[] doFinal = cipher.doFinal(bytes);
使用 BASE64Encoder 将加密结果转成 String 后返回
return base64Encoder.encode(doFinal);public static String getEncryptString(String str){ //基于BASE64编码,接收byte[]并转换成String BASE64Encoder base64Encoder = new BASE64Encoder(); try { // 按UTF8编码 byte[] bytes = str.getBytes(CHARSET_NAME); // 获取加密对象 Cipher cipher = Cipher.getInstance(ALGORITHM_NAME); // 初始化密码信息 cipher.init(Cipher.ENCRYPT_MODE, key); // 加密 byte[] doFinal = cipher.doFinal(bytes); // byte[]to encode好的String并返回 return base64Encoder.encode(doFinal); } catch (Exception e) { throw new RuntimeException(e); } }
private static final String ENCRYPTION_KEY = "HI, I'M UPYOU.";
private static final String CHARSET_NAME = "UTF-8";
private static final String ALGORITHM_NAME = "DES";private static Key key;
将ENCRYPTION_KEY作为一个加密密钥,将ENCRYPTION_KEY转成Key类型。
static { try { // 生成 ALGORITHM_NAME 算法对象 KeyGenerator edsAlgorithmInstance = KeyGenerator.getInstance(ALGORITHM_NAME); // 使用SHA1安全策略 SecureRandom sha1PRNG = SecureRandom.getInstance("SHA1PRNG"); // 设置密钥 ENCRYPTION_KEY sha1PRNG.setSeed(ENCRYPTION_KEY.getBytes()); // 初始化KeyGenerator对象 edsAlgorithmInstance.init(sha1PRNG); //生成 key key = edsAlgorithmInstance.generateKey(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } }
创建对字符串加密方法 encrypetString
public static String encryptString(){}
encrypetString方法中操作
需要使用BASE64Encoder将加密后的结果转成 String
BASE64Encoder base64Encoder = new BASE64Encoder();
得到待加密字符串基于CHARSET_NAME编码的byte[]
byte[] bytes = str.getBytes(CHARSET_NAME);
创建基于ALGORITHM_NAME的加密算法
Cipher cipher = Cipher.getInstance(ALGORITHM_NAME);
初始化加密设置,使用无三参初始化方式。
cipher.init(Cipher.ENCRYPT_MODE, key);
将密码进行加密,此处返回的是加密后的byte[]对象
byte[] doFinal = cipher.doFinal(bytes);
使用 BASE64Encoder 将加密结果转成 String 后返回
return base64Encoder.encode(doFinal);public static String getEncryptString(String str){ //基于BASE64编码,接收byte[]并转换成String BASE64Encoder base64Encoder = new BASE64Encoder(); try { // 按UTF8编码 byte[] bytes = str.getBytes(CHARSET_NAME); // 获取加密对象 Cipher cipher = Cipher.getInstance(ALGORITHM_NAME); // 初始化密码信息 cipher.init(Cipher.ENCRYPT_MODE, key); // 加密 byte[] doFinal = cipher.doFinal(bytes); // byte[]to encode好的String并返回 return base64Encoder.encode(doFinal); } catch (Exception e) { throw new RuntimeException(e); } }