美文网首页
3DES加密

3DES加密

作者: 夜月行者 | 来源:发表于2017-11-27 18:28 被阅读0次

简介

也就是 3 重 DES — — Triple DES。它相当于是对每个数据块应用三次 DES 加密算法。由于计算机运算能力的增强,原版 DES 密码的密钥长度变得容易被暴力破解;3DES 即是设计用来提供一种相对简单的方法,即通过增加 DES 的密钥长度来避免类似的攻击,而不是设计一种全新的块密码算法。

原理

使用 3 条 56 位的密钥对数据进行三次加密。3DES(即 Triple DES)是 DES 向 AES 过渡的加密算法(1999年,NIST 将 3-DES 指定为过渡的加密标准)。

输出

入口参数有三个:key、data、mode。

  • key 为加密解密使用的密钥,长度为24字节
  • data 为加密 解密的数据,
  • mode 为其工作模式。
    密钥是192位,但是是分开使用的,每个加密快的长度应该还是8字节的整数倍
    记住:如果是有padding,如果是明文如果是8字节的整数倍的话,加密的密文长度肯定要增加8个字节,因为要有标识

java demo

public static byte[] Des333() {
 
        String data = "1234123";
        String key = "123456781234567812345678";//密钥长度必须大于8个字节
        String iv = "12341234";
 
        try {
            // 从原始密钥数据创建DESKeySpec对象
            DESedeKeySpec dks = new DESedeKeySpec(key.getBytes());
 
            // 创建一个密匙工厂,然后用它把DESKeySpec转换成
            // 一个SecretKey对象
            SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DESede");
            SecretKey secretKey = keyFactory.generateSecret(dks);
 
            // Cipher对象实际完成加密操作
            Cipher cipher = Cipher.getInstance("DESede/CBC/PKCS5Padding");
            //使用nopadding模式,data必须为8字节的整数倍
//             Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");
 
            // 用密匙初始化Cipher对象
            IvParameterSpec param = new IvParameterSpec(iv.getBytes());
            cipher.init(Cipher.ENCRYPT_MODE, secretKey, param);
 
            // 执行加密操作
            byte encryptedData[] = cipher.doFinal(data.getBytes());
            System.out.println(str16(encryptedData).length());
 
            return encryptedData;
        } catch (Exception e) {
            System.err.println("出错!");
            e.printStackTrace();
        }
 
        return null;
    }

相关文章

  • Android Des/3DES加解密

    1、3DES加解密 DES加密分为 单DES和 3DES加密 单DES加密是8个字节长度加密 3DES加密分为:双...

  • iOS常用加解密方式

    AES128 AES128加密 AES128解密 3DES 3DES加密 3DES解密 DES DES加密 DES解密

  • android 3DES加密和MD5加密

    经常使用加密算法:DES、3DES、RC4、AES,RSA等;对称加密:des,3des,aes非对称加密:rsa...

  • Android 加密解密的几种方式总结

    经常使用加密算法:DES、3DES、RC4、AES,RSA等; 对称加密:des,3des,aes 非对称加密:r...

  • 3DES加密

    本文介绍了3DES加密特性,加密特点,3DES是对称加密,用一个密钥对内容进行加密,必须使用相同的密钥进行解密, ...

  • 3DES企业级加密与解密

    一、加密方案 HTTP请求参数以json密文传输使用3DES方式加密,3DES(data,KEY,IV),其中da...

  • iOS之DES加密

    项目是使用3DES算法,ECB分组加密模式。我们后端使用的加密过程:对明文进行十六进制编码,在使用3DES加密。i...

  • iOS 几种加密方式

    一:MD5加密 二:base64加密 三:AES加密 四:3DES加密

  • 数据加密--学习

    常用加密算法 AES MD5 BASE64 RSA DES 3DES RC4 对称加密 des,3des,aes非...

  • Java 实现 3DES 加密

    本文介绍 Java 语言实现 3DES 加密的方法。 目录 3DES 简介 代码实现CBC 3DES 简介 3DE...

网友评论

      本文标题:3DES加密

      本文链接:https://www.haomeiwen.com/subject/qnwdbxtx.html