对称加密算法
来源:互联网 发布:淘宝商城歌莉娅 编辑:程序博客网 时间:2024/05/20 12:20
import java.security.Key;import java.security.SecureRandom;import javax.crypto.Cipher;import javax.crypto.KeyGenerator;import javax.crypto.SecretKey;import javax.crypto.SecretKeyFactory;import javax.crypto.spec.DESKeySpec;import javax.crypto.spec.PBEKeySpec;import javax.crypto.spec.PBEParameterSpec;import javax.crypto.spec.SecretKeySpec;import org.apache.commons.codec.binary.Base64;/* * 对称加密 */public class DES {public static final String src="xiaoweiba";public static void main(String[] args) throws Exception {jdkDES();jdkAES();jdkPBE();}/* * DES对称加密 */public static void jdkDES() throws Exception{//生成keyKeyGenerator keyGenerator = KeyGenerator.getInstance("DES");keyGenerator.init(new SecureRandom());SecretKey secretKey = keyGenerator.generateKey();byte[] bytesKey = secretKey.getEncoded();//key转换DESKeySpec desKeySpec = new DESKeySpec(bytesKey);SecretKeyFactory factory = SecretKeyFactory.getInstance("DES");Key convertKeySecret = factory.generateSecret(desKeySpec);//加密Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding");cipher.init(Cipher.ENCRYPT_MODE,convertKeySecret);byte[] result = cipher.doFinal(src.getBytes());StringBuilder sb = new StringBuilder(); for (byte item : result) { sb.append(Integer.toHexString((item & 0xFF) | 0x100).substring(1, 3)); }System.out.println("jdk des encrypt:"+ sb);//解密cipher.init(Cipher.DECRYPT_MODE,convertKeySecret);result = cipher.doFinal(result);System.out.println("jdk des decrypt:"+ new String(result));}/* * AES对称加密 */public static void jdkAES() throws Exception{//生成keyKeyGenerator keyGenerator = KeyGenerator.getInstance("AES");keyGenerator.init(new SecureRandom());SecretKey secretKey = keyGenerator.generateKey();byte[] bytesKey = secretKey.getEncoded();//key转换Key key = new SecretKeySpec(bytesKey,"AES");//加密Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");cipher.init(Cipher.ENCRYPT_MODE,key);byte[] result = cipher.doFinal(src.getBytes());//commons-codec.jarSystem.out.println("jdk des encrypt:"+Base64.encodeBase64String(result));//解密cipher.init(Cipher.DECRYPT_MODE,key);result = cipher.doFinal(result);System.out.println("jdk des decrypt:"+ new String(result));}/* * PBE对称加密 */public static void jdkPBE() throws Exception{//初始化SecureRandom random = new SecureRandom();byte[] salt = random.generateSeed(8);//口令和密钥String password = "chang";PBEKeySpec pbeKeySpec = new PBEKeySpec(password.toCharArray());SecretKeyFactory factory = SecretKeyFactory.getInstance("PBEWITHMD5andDES");Key key = factory.generateSecret(pbeKeySpec);//加密PBEParameterSpec pbeParamterSpec = new PBEParameterSpec(salt,100);Cipher cipher = Cipher.getInstance("PBEWITHMD5andDES");cipher.init(Cipher.ENCRYPT_MODE,key,pbeParamterSpec);byte[] result = cipher.doFinal(src.getBytes());//commons-codec.jarSystem.out.println("jdk des encrypt:"+Base64.encodeBase64String(result));//解密cipher.init(Cipher.DECRYPT_MODE,key,pbeParamterSpec);result = cipher.doFinal(result);System.out.println("jdk des decrypt:"+ new String(result));}}
阅读全文
0 0
- 对称加密算法
- 对称加密算法
- 对称加密算法
- 对称加密算法
- 对称加密算法
- 对称加密算法
- 对称加密算法
- 对称加密算法
- 对称加密算法
- 对称加密算法
- 对称加密算法
- 对称加密算法
- 对称加密算法
- 对称加密算法
- 对称加密算法,非对称加密算法
- 对称加密算法,非对称加密算法
- 对称加密算法,非对称加密算法
- 对称加密算法----DES加密算法
- 关于jvm的几点思考
- UISegmentedControl分段控件(基础篇)
- python爬虫爬取补天公益SRC厂商
- Python内置函数min(iterable, *[, key, default])
- webservice
- 对称加密算法
- 重写?重载?
- 梯度下降算法
- 设计之美-链表与队列
- JVM内幕:Java虚拟机详解
- 文章标题
- 乘积最大(动态规划经典题)
- HTTP
- [BZOJ4003] [JLOI2015]城池攻占