精华内容
下载资源
问答
  • 双重DES原理: 两个加密密钥:用第一个加密密钥加密后,再用另一个密钥进行二次加密,解密则先用第二次加密的密钥解密,然后再用第一次加密的密钥进行解密 ...DES-EEE3 DES-EDE3 DES-EEE2 DES-EDE2...

    双重DES原理:

    两个加密密钥:用第一个加密密钥加密后,再用另一个密钥进行二次加密,解密则先用第二次加密的密钥解密,然后再用第一次加密的密钥进行解密

    三重DES原理:使用第一个密钥对明文进行加密得到密文1,再使用第二个密钥对明文进行解密(第二个密钥不等于第一个密钥),之后再使用第一个密钥进行加密得到密文

    三重DES的四种模型:

    DES-EEE3

    DES-EDE3

    DES-EEE2

    DES-EDE2

    E为加密,D为解密,3为使用了3个密钥,2为使用了2个密钥

    分组加密(块加密)

    分成块进行加密,如果不够块的长度则需要进行填充

    如何填充:缺几个,就填几个,里面的内容为缺的个数,如缺五个,那么就填充5个,每个里面的数字为5,不缺时也要填充,直接填充16个

    如:在基础01里有详细介绍

    ECB

    特点:

    在这里插入图片描述

    CBC

    特点:

    在这里插入图片描述

    序列加密(流加密):

    密钥的产生:通过密钥流生成器生成和明文一样长的密钥流,就不用再进行填充

    产生的密钥流与明文进行异或产生密文

    如:在基础01里有详细介绍

    CFB

    特点:

    在这里插入图片描述

    误差传递:一个单元损坏影响多个单元

    OFB

    特点:
    在这里插入图片描述

    CTR

    特点:

    在这里插入图片描述
    注:图片均来源于网络,版权归原作者所有。如有侵权,请联系作者删除,谢谢!

    展开全文
  • 3重Des算法C++实现

    2011-11-21 14:41:49
    运用三重Des 算法实现加密,网络安全课程课程设计
  • 3重des加密,自己输入加密密钥,加密后显示加密密文,并且同时显示解密后的明文。
  • DES对称加密及三重DES(3DES

    千次阅读 2021-08-19 21:20:57
    一、DES 1概述 DES算法全称为Data Encryption Standard,即数据加密算法,它是IBM公司于1975年研究成功并公开发表的。DES算法的入口参数有三个:Key、Data、Mode。其中Key为8个字节共64位,是DES算法的工作密钥;...

    一、DES

     

    概述

    DES算法全称为Data Encryption Standard,即数据加密算法,它是IBM公司于1975年研究成功并公开发表的。DES算法的入口参数有三个:Key、Data、Mode。其中Key为8个字节共64位,是DES算法的工作密钥;Data也为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:加密或解密。

    算法原理

    DES算法把64位的明文输入块变为64位的密文输出块,它所使用的密钥也是64位,其算法主要分为两步:

    (1)初始置换

    其功能是把输入的64位数据块按位重新组合,并把输出分为L0、R0两部分,每部分各长32位,其置换规则为将输入的第58位换到第一位,第50位换到第2位……依此类推,最后一位是原来的第7位。L0、R0则是换位输出后的两部分,L0是输出的左32位,R0是右32位,例:设置换前的输入值为D1D2D3……D64,则经过初始置换后的结果为:L0=D58D50……D8;R0=D57D49……D7。

    (2)逆置换

    经过16次迭代运算后,得到L16、R16,将此作为输入,进行逆置换,逆置换正好是初始置换的逆运算,由此即得到密文输出。

    二、 两个密钥的三重DES

    由于DES密钥只有56bit,易于遭受穷举时攻击。作为一种替代加密方案,Tuchman提出使用两个密钥的三重DES加密方法,并在1985年成为美国的一个商用加密标准。该方法使用两个密钥,执行三次DES算法,如图2所示。加密的过程是加密-解密-加密,解密的过程是解密-加密-解密。

    采用两个密钥进行三重加密的好处有:①两个密钥合起来有效密钥长度有112bit,可以满足商业应用的需要,若采用总长为168bit的三个密钥,会产生不必要的开销。②加密时采用加密-解密-加密,而不是加密-加密-加密的形式,这样有效的实现了与现有DES系统的向后兼容问题。因为当K1=K2时,三重DES的效果就和原来的DES一样,有助于逐渐推广三重DES。③三重DES具有足够的安全性,目前还没有关于攻破三重DES的报道。

     什么是三重DES

    三重DES是为了增加DES的强度,将DES重复3次所得到的一种密码算法,通常缩写为3DES。

    二 三重DSE加密

    明文经过三次DES处理才能变成最后的密文,由于DES密钥长度实质是56位,因此3DES的密钥长度就是56*3=168比特。

    注意:三重DES的三次DES加密是(加密->解密->加密),而不是(加密->加密->加密),为什么这样设计呢?看看下面这张图就明白了。

    如果三次DES加密的密钥都相同,前两次DES,相当于还原成了密文,这样看来,真正起作用的只是最后一次。这样做的好处是:三重DES对DES具备向下兼容性。

    还有一种密码叫DES-EDE2,下面我们用图来描述这一种密码。

    当然,只有三个密钥互不相等才是正宗的DES-EDE3。

    三 三重DES解密

    三重DES的解密过程和加密过程正好相反,是以密钥3、密钥2、密钥1的顺序执行解密->加密->解密的操作。

    四 三重DES现状

    尽管三重DES目前还被银行等机构使用,但其处理速度不高,除了特别重视向下兼容性的情况外,很少被用于新的用途。

    CBC模式调用:

    from pyDes import des, CBC, PAD_PKCS5
    import binascii
    
    # 秘钥
    KEY = 'Codeoooo'
    
    
    def des_encrypt(s):
        """
        DES 加密
        :param s: 原始字符串
        :return: 加密后字符串,16进制
        """
        secret_key = KEY  # 密码
        iv = secret_key  # 偏移
        # secret_key:加密密钥,CBC:加密模式,iv:偏移, padmode:填充
        des_obj = des(secret_key, CBC, iv, pad=None, padmode=PAD_PKCS5)
        # 返回为字节
        secret_bytes = des_obj.encrypt(s, padmode=PAD_PKCS5)
        # 返回为16进制
        return bytes.decode(binascii.b2a_hex(secret_bytes))
    
    
    def des_descrypt(s):
        """
        DES 解密
        :param s: 加密后的字符串,16进制
        :return:  解密后的字符串
        """
        secret_key = KEY
        iv = secret_key
        des_obj = des(secret_key, CBC, iv, pad=None, padmode=PAD_PKCS5)
        decrypt_str = des_obj.decrypt(binascii.a2b_hex(s), padmode=PAD_PKCS5)
        return bytes.decode(decrypt_str)
    
    print(des_encrypt('codeooo'))
    print(des_descrypt('4ff67fd9b661f01d'))

    ECB模式调用:

    from pyDes import des, ECB, PAD_PKCS5
    import base64
    
    DES_SECRET_KEY = '12345678'
    data = 'codeooo'
    des_obj = des(DES_SECRET_KEY, ECB, DES_SECRET_KEY, padmode=PAD_PKCS5)
    secret_bytes = str(base64.b64encode(des_obj.encrypt(data)), encoding = 'utf-8')
    print(secret_bytes)

    展开全文
  • 3重DES加密 delphi

    2012-01-10 10:32:38
    专业实习 在资料上找的 看不懂 大家分享 求指点
  • 3重DES算法(c++)

    2011-07-24 19:41:29
    3des加密算法 ,c++编写,程序源代码(带注释)
  • java加解密之3重DES

    千次阅读 2016-10-17 17:12:07
    重DES加密较容易破解,为了提高安全性,3重DES加密就是在单的基础上衍生出来的,一般3重DES用的比较频繁。加密过程为加密-解密-加密。 我一直想找用自己定义密钥的方法来做程序,网上找了很多都找不到,单倒是...
        单重DES加密较容易破解,为了提高安全性,3重DES加密就是在单重的基础上衍生出来的,一般3重DES用的比较频繁。加密过程为加密-解密-加密。
    我一直想找用自己定义密钥的方法来做程序,网上找了很多都找不到,单重倒是有很多,因此只能自己研究研究了,现在拿出来给各位做java的分享
    分享,希望各位喜欢。
    /**
     * 3重DES加密
     * @param src
     * @param DES_KEY 密钥长度不少于24的倍数位
     * @return
     */
    public static String EncryptBy3DES(String src,String DES_KEY){
        String result=null;
        try {
            SecureRandom secureRandom=new SecureRandom();
            DESedeKeySpec sedeKeySpec=new DESedeKeySpec(DES_KEY.getBytes());
    
            SecretKeyFactory secretKeyFactory=SecretKeyFactory.getInstance("DESede");
            SecretKey key=secretKeyFactory.generateSecret(sedeKeySpec);
    
            Cipher cipher=Cipher.getInstance("DESede/ECB/PKCS5Padding");
            cipher.init(Cipher.ENCRYPT_MODE,key,secureRandom);
    
            byte[] bytesresult=cipher.doFinal(src.getBytes());
            result=new sun.misc.BASE64Encoder().encode(bytesresult);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return  result;
    }
     
    
    /**
     * 3重DES解密
     * @param src
     * @param DES_KEY
     * @return
     */
    public static String decryptBy3DES(String src,String DES_KEY){
        String deresult=null;
        try {
            SecureRandom secureRandom=new SecureRandom();
            DESedeKeySpec sedeKeySpec=new DESedeKeySpec(DES_KEY.getBytes());
    
            SecretKeyFactory secretKeyFactory=SecretKeyFactory.getInstance("DESede");
            SecretKey key = secretKeyFactory.generateSecret(sedeKeySpec);
    
            Cipher cipher=Cipher.getInstance("DESede/ECB/PKCS5Padding");
            cipher.init(Cipher.DECRYPT_MODE,key,secureRandom);
    
            byte[] bytesresult=cipher.doFinal(new sun.misc.BASE64Decoder().decodeBuffer(src));
            deresult=new String(bytesresult);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return deresult;
    }
    测试:
    public class DES_3 {
        //定义一个要加密的字符串
        private static String src="imooc security 3des";
    
    
        public static void main(String[] args) {
           //调用加密的方法并打印查看结果   
    	System.out.println(EncryptBy3DES(src,"123456781234567812345678"));
    //将加密后的结果放入解密的方法,由于是对称加密,因此加解密的密钥都是同一个 System.out.println(decryptBy3DES("lA/dMJvyrb2Q/BtmUKPPEdNwn5+TwCxA","123456781234567812345678")); }
    }

    展开全文
  • 3重DES加密java版

    2008-04-17 15:37:17
    3重DES加密算法java
  • 自己写的密码学报告,里面有完整的实验目的、流程图、关键代码分析、代码、运行截图等。DES主要的三个程序——ECB\CBC工作模式下的DES,3DES,写的超级清晰!欢迎下载
  • 三重DES原理

    万次阅读 2018-08-29 19:05:55
    明文经过三次DES处理才能变成最后的密文,由于DES密钥长度实质是56位,因此3DES的密钥长度就是56*3=168比特。 注意:三重DES的三次DES加密是(加密->解密->加密),而不是(加密->加密-&...

    一 什么是三重DES

    三重DES是为了增加DES的强度,将DES重复3次所得到的一种密码算法,通常缩写为3DES。

    二 三重DSE加密

    明文经过三次DES处理才能变成最后的密文,由于DES密钥长度实质是56位,因此3DES的密钥长度就是56*3=168比特。

    注意:三重DES的三次DES加密是(加密->解密->加密),而不是(加密->加密->加密),为什么这样设计呢?看看下面这张图就明白了。

    如果三次DES加密的密钥都相同,前两次DES,相当于还原成了密文,这样看来,真正起作用的只是最后一次。这样做的好处是:三重DES对DES具备向下兼容性。

    还有一种密码叫DES-EDE2,下面我们用图来描述这一种密码。

    当然,只有三个密钥互不相等才是正宗的DES-EDE3。

    三 三重DES解密

    三重DES的解密过程和加密过程正好相反,是以密钥3、密钥2、密钥1的顺序执行解密->加密->解密的操作。

    四 三重DES现状

    尽管三重DES目前还被银行等机构使用,但其处理速度不高,除了特别重视向下兼容性的情况外,很少被用于新的用途。

    展开全文
  • 基于fpga的3重des算法

    2010-06-12 14:05:04
    基于fpga的三重dessuanfa 三重des算法与des算法相比,安全性能大幅度提高 使用quartusII vhdl语言编写
  • Java实现三重DES加密算法

    千次阅读 2018-04-12 09:37:14
    本着学习DES算法的心态我手敲了一遍,然而完全就是写界面,核心算法用的是包里的。。 anyway,既然代码已经敲出来了就贴一下吧,java 写的一个桌面版程序,虽然丑了点,但也不是太难写。 代码很冗余,写这段代码的...
  • 本资源包含已封装好的DES和3DES代码,不知如何使用可以看main函数试着运行
  • 主要介绍了python实现的DES加密算法和3DES加密算法,以实例形式较为详细的分析了DES加密算法和3DES加密算法的原理与实现技巧,需要的朋友可以参考下
  • 基于STM32的软件加解密算法,包括DES,3DES的ECB,CBC模式。但是验证时CBC模式的初始向量为0时,数据的加解密正确,但是初始向量不为0时,则加解数据有错误。 注意:经测试DES,3DES的CBC模式初始向量不为0时,加...
  • des_3des cbc模式的加密解密算法,加密过程清晰明了,是份易懂的des加密解密算法程序,希望对需要的人有帮助。
  • //3DES算法 unsigned char D3DES_Encrypt(unsigned char *plainBuffer, unsigned char *keyBuffer, unsigned char *cipherBuffer);//加密数据 unsigned char D3DES_Decrypt(unsigned char *cipherBuffer, unsigned ...
  • 3DES加密js前端示例

    2019-06-27 10:11:27
    有关3DES加密算法的web端js示例,有详细的加解密方法,简单明了
  • 3DES加密和解密算法, 用C语言实现的代码实例 。// printf("Original data: %s\n", data); des(data, key1, len); //产生密钥,并调整数组byte,输出密文。 /*---再解次密---*/ printf("Please input a key2:\n...
  • 包含密码学中分组密码加密的DES加密和3DES加密算法源代码以及编译完成的可执行文件,代码包含详细注释。
  • 3DES加密算法,使用openssl库,ECB算法,pkcs7padding填充模式(借鉴网上的算法,并经过自己的改良,可以实现加密与解密)
  • DES算法的入口参数有三个:Key、Data、Mode,文件内附带使用demo。 DES3.js\BASE64.js
  • 3des.jar包

    2018-04-26 11:39:59
    3DES 工具类中所需的jar,该资源仅提供jar包无jar包源码
  • 主要介绍了Java实现的3des加密解密工具类,结合完整实例形式分析了3des加密解密的具体步骤与相关操作技巧,需要的朋友可以参考下
  • des,d2des,d3des的区别

    千次阅读 2016-02-17 17:27:45
    因为确定一种新的加密法是否真的安全是极为困难的,而且DES的唯一密码学缺点,就是密钥长度相对比较短,所以人们并没有放弃使用DES,而是想出了一个解决其长度问题的方法,即采用三重DES。这种方法用两个密钥对明文...
  • Java 3des加密算法ECB模式,亲测完美通过。目前网上的大部分算法都通不过或者加进Base64之类的,还要不下载其它jar包。而代码使用时直接下载运行,无须配置和下载额外的jar包 ,只需换上自己的密钥和待加密的数据...
  • php-3des加密解密类.zip

    2019-07-11 09:49:05
    3DES(或称为Triple DES)是三重数据加密算法(TDEA,Triple Data Encryption Algorithm)块密码的通称,它相当于是对每个数据块应用三次DES加密算法,由于计算机运算能力的增强,原版DES密码的密钥长度变得容易被暴力破解,3...
  • 易语言3DES,DES,AES加密算法纯源码
  • 3DES加密算法源码

    2015-01-21 18:38:23
    最早的定义了该算法的标准(ANS X9.52,1998年发布)将其描述为“三重数据加密算法(TDEA)”— 即为ANSI X3.92中定义的数据加密算法(DEA)的三次重复操作— 而完全没有使用术语“3DES”或“DES”。FIPS PUB 46-3...
  • 用c++实现了先用3DES进行内容的加密,再用Base64加密;和先用base64解密再用3DES解密,里面有使用方法基本都可以用的

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 113,892
精华内容 45,556
关键字:

3重des