加密知识:
类MD5andKL.java的实现描述:MD5加码-32位
1.private static byte[] getMD5(String input) {
try {
byte[] bytesOfMessage = input.getBytes("UTF-8");
MessageDigest md = MessageDigest.getInstance("MD5");
return md.digest(bytesOfMessage);
} catch (Exception e) {
return null;
}
}
2.ecipher.init(Cipher.ENCRYPT_MODE, key, paramSpec);
init(int opmode, Key key, AlgorithmParameterSpec params)
用密钥和一组算法参数初始化此 cipher。
3. setupCrypto(SecretKey key) 用密钥和一组算法参数初始化此 加密的和解密的cipher。
4.SecretKeySpec skey = new SecretKeySpec(getMD5(key), "AES");
this.setupCrypto(skey);
5.byte[] ciphertext = ecipher.doFinal(plaintext.getBytes("UTF-8"));//按单部分操作加密或解密数据,或者结束一个多部分操作。
return base64Encoder.encode(ciphertext);
6. private String tryEncrypt(String plaintext)
throws IllegalBlockSizeException, UnsupportedEncodingException {
try {
byte[] ciphertext = ecipher.doFinal(plaintext.getBytes("UTF-8"));
return base64Encoder.encode(ciphertext);
} catch (BadPaddingException e) {
logger.error("encrypt error for Key:" + plaintext, e);
return null;
}
}
7. private String tryDecrypt(String base64CipherText) throws IOException,
IllegalBlockSizeException {
byte[] cipherText;
try {
cipherText = base64Decoder.decodeBuffer(base64CipherText);
return decrypt(cipherText);
} catch (BadPaddingException e) {
logger.error("decrypt error for Key:" + base64CipherText, e);
return null;
}
}
8.ConfigurableVariable.xml