加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 电商 > 正文

分析:说一下你常用的加密算法

发布时间:2021-07-01 04:29:34 所属栏目:电商 来源:互联网
导读:一、不可逆加密 常见的不可逆加密算法有MD5,HMAC,SHA1、SHA-224、SHA-256、SHA-384,和SHA-512,其中SHA-224、SHA-256、SHA-384,和SHA-512我们可以统称为SHA2

对称加密算法是应用比较早的算法,在数据加密和解密的时用的都是同一个密钥,这就造成了密钥管理困难的问题。常见的对称加密算法有DES、3DES、AES128、AES192、AES256 (默认安装的 JDK 尚不支持 AES256,需要安装对应的 jce 补丁进行升级 jce1.7,jce1.8)。其中AES后面的数字代表的是密钥长度。对称加密算法的安全性相对较低,比较适用的场景就是内网环境中的加解密。

2.1 DES

DES是对称加密算法领域中的典型算法,其密钥默认长度为56位。

/ 加密 

 public static String encrypt(byte[] dataSource, String password){ 

      try { 

          SecureRandom random = new SecureRandom(); 

          DESKeySpec desKeySpec = new DESKeySpec(password.getBytes()); 

          //创建一个密匙工厂,然后用它把DESKeySpec转换成  

          SecretKeyFactory secretKeyFactory = SecretKeyFactory.getInstance("DES");  

          SecretKey secretKey = secretKeyFactory.generateSecret(desKeySpec);  

          //Cipher对象实际完成加密操作  

         Cipher cipher = Cipher.getInstance("DES");  

         //用密匙初始化Cipher对象  

         cipher.init(Cipher.ENCRYPT_MODE, secretKey, random);  

         //正式执行加密操作  

         return Base64.encodeBase64String(cipher.doFinal(dataSource));  

     } catch (Throwable e) {  

         e.printStackTrace();  

     } return null;  

 }  

// 解密 

public static String decrypt(String src, String password) throws Exception{  

    // DES算法要求有一个可信任的随机数源  

    SecureRandom random = new SecureRandom();  

    // 创建一个DESKeySpec对象  

    DESKeySpec desKeySpec = new DESKeySpec(password.getBytes());  

    // 创建一个密匙工厂  

    SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");  

    // 将DESKeySpec对象转换成SecretKey对象  

    SecretKey secretKey = keyFactory.generateSecret(desKeySpec);  

    // Cipher对象实际完成解密操作  

    Cipher cipher = Cipher.getInstance("DES");  

    // 用密匙初始化Cipher对象  

    cipher.init(Cipher.DECRYPT_MODE, secretKey, random);  

    // 真正开始解密操作  

    return new String(cipher.doFinal(Base64.decodeBase64(src)));  

2.2 3DES

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读