精华内容
下载资源
问答
  • 在前端开发当中我们在和后端交互中,有些用户数据或者信息是比较重要或者需要加强一些安全性。通常我们知道前端加密方法有MD5,DES,AES,base64,RSA,sha1。今天就献丑大概说一下我在实际开发中一些操作...

    关于使用DES加密和解密的操作

    在前端的开发当中我们在和后端的交互中,有些用户数据或者信息是比较重要或者需要加强一些安全性。通常我们知道前端的加密方法有MD5,DES,AES,base64,RSA,sha1。今天就献丑大概说一下我在实际开发中的一些操作见解.有什么不足的地方请大佬多多指教

    准备工作

    项目是用vue-cli来开发,所以一些第三方插件或者包的话用npm来管理。对于我这种不细心的人来说,在知道需要用DES加密和解密的时候就直接去百度这些方法了,而忽略了一个重要的问题。就是Js本身有一个强大的加密/解密库,就是crypto-js。这个玩意非常强大,具体介绍的可以自行百度。所以后面在使用DES加密/解密的时候得用到这个东西。

    上代码

    1.首先在项目中引入crypto-js
    1.1 通过npm下载

    npm install crypto-js
    

    当然在国内的话一般都是用淘宝镜像,毕竟快

    cnpm install crypto-js --save --dev
    

    2.在项目中创建一个js文件
    在这里插入图片描述
    这个文件里专门放置DES的加密/解密方法

    3.在des.js中引入crypto-js

    import CryptoJS from 'crypto-js'
    export default class Helper {
        // 加密
        static encryptByDES(ciphertext, key) {
            let keyHex = CryptoJS.enc.Utf8.parse(key);
            let ivHex = CryptoJS.enc.Utf8.parse(key);
            let encrypted = CryptoJS.DES.encrypt(ciphertext, keyHex, {
                iv: ivHex,
                mode: CryptoJS.mode.CBC,
                padding: CryptoJS.pad.Pkcs7
            });
            return encrypted.ciphertext.toString().toUpperCase();
        }
        // 解密
        static decryptByDES(ciphertext, key) {
            let keyHex = CryptoJS.enc.Utf8.parse(key);
            let ivHex = CryptoJS.enc.Utf8.parse(key);
            let decrypted = CryptoJS.DES.decrypt({
                    ciphertext: CryptoJS.enc.Hex.parse(ciphertext)
                },
                keyHex, {
                    iv: ivHex,
                    mode: CryptoJS.mode.CBC,
                    padding: CryptoJS.pad.Pkcs7
                }
            );
            return decrypted.toString(CryptoJS.enc.Utf8);
        }
    }
    

    现在准备工作已经完成了,来看下在和后台实际交互。废话不多直接上图
    在这里插入图片描述
    这是请求成功后台返回的给的加密格式,是以字符串的形式。刚开始比较懵逼,以为是自己请求错了。但具体看状态码是没问题,后来通过和后台沟通才知道是加密过的。所以这个时候就需要用到之前准备的那些东西了。
    4.具体项目中的使用
    4.1首先把刚才des.js文件引入到需要的组件当中
    在这里插入图片描述
    4.2使用引入的这个js文件里的加密/解密方法

    在这里插入图片描述
    4.3实际效果
    在这里插入图片描述
    通过解密以后拿到后台返回真正的信息。
    PS:因为加密/解密给的数据类型都是字符串的,所以在解密完以后需要格式转换成对象,当然我用的JSON对象。在传递给后台的加密数据中也是以字符串的形式形式传递给后台。后台接收的话自然有他们自己方法就不多说。
    结语:
    在使用的过程中,自己也去百度了很多方法。但是这些方法都没有真正适合自己的,所以在开发过程中浪费了很多无谓的时间。不过好在最后解决了,这次记录分享一下。希望能帮助有需要的人,有不足的地方请各位大佬多多包涵

    展开全文
  • PGP消息分成原始消息、签名部分和会话密钥部分三个部分。 PGP发送方处理消息过程为:(1)签名:利用UserID作为索引,从私钥环中得到私钥;PGP提示输入口令短语,恢复私钥;构造签名部分;(2)加密:PGP产生一个...
  • 3DES加密算法

    2018-11-16 09:51:30
    DES是一经典对称加密算法,但也缺陷明显,即56位密钥安全性不足,已被证实可以在短时间内破解。为解决此问题,出现了3DES,也称Triple DES,3DESDES向AES过渡加密算法,它使用3条56位密钥对数据进行次...

    一、3DES加密

    DES是一个经典的对称加密算法,但也缺陷明显,即56位的密钥安全性不足,已被证实可以在短时间内破解。为解决此问题,出现了3DES,也称Triple DES,3DES为DES向AES过渡的加密算法,它使用3条56位的密钥对数据进行三次加密。为了兼容普通的DES,3DES并没有直接使用 加密->加密->加密 的方式,而是采用了加密->解密->加密 的方式。

    当三重密钥均相同时,前两步相互抵消,相当于仅实现了一次加密,因此可实现对普通DES加密算法的兼容。

    二、3DES解密

    3DES解密过程,与加密过程相反,即逆序使用密钥。是以密钥3、密钥2、密钥1的顺序执行 解密->加密->解密。

    相比DES,3DES因密钥长度变长,安全性有所提高,但其处理速度不高。因此又出现了AES加密算法,AES较于3DES速度更快、安全性更高。

    三、Go语言使用3DES算法

    对比DES,发现只是换了NewTripleDESCipher。不过,需要注意的是,密钥长度必须24byte,否则直接返回错误。

    package main
    
    import (
    	"crypto/des"
    	"bytes"
    	"crypto/cipher"
    	"fmt"
    )
    
    //为最后一组填充数据
    func PaddingText(src []byte,blockSize int)[]byte{
    	length := len(src)%blockSize
    	//获取需要填充的字节数
    	padding := blockSize-length
    	//填充数据
    	paddText := bytes.Repeat([]byte{byte(padding)},padding)
    	//将填充数据追加到原始数据
    	newText := append(src,paddText...)
    
    	return newText
    }
    
    func UnPaddingText(src []byte) []byte{
    	length := len(src)
    	//取出原始数据最后一个字节
    	number := int(src[length-1])
    	//去除填充数据
    	newText := src[:length-number]
    
    	return newText
    }
    
    //使用DES算法对文件进行加密
    //src:需要被加密的明文
    //key:秘钥
    func EncryptDES(src,key []byte)([]byte,error){
    	//生成加密用的block
    	block, err := des.NewTripleDESCipher(key)
    	if err!=nil{
    		return []byte(""),err
    	}
    
    	length := block.BlockSize()
    	//拼接数据
    	src = PaddingText(src,length)
    	//NewCBCEncrypter第二个参数是初始化向量,长度要求和块大小一样,内容随意(需要和解密初始化向量相同)
    	//根据块和向量创建CBC加密模式
    	blockMode := cipher.NewCBCEncrypter(block,key[:block.BlockSize()])
    	//创建切片,用于存储加密之后的密文
    	dest := make([]byte,len(src))
    	//加密
    
    	blockMode.CryptBlocks(dest,src)
    
    	return dest,nil
    }
    
    //使用DES算法解密
    //src:需要被解密的密文
    //key:秘钥,需要和加密时使用的秘钥相同
    func DecryptDES(src,key []byte)([]byte,error){
    	block, err := des.NewTripleDESCipher(key)
    	if err != nil{
    		return []byte(""),err
    	}
    
    	//准备初始化向量
    	//创建解密模式
    	blockMode := cipher.NewCBCDecrypter(block,key[:block.BlockSize()])
    	//创建切片,用于存储解密之后的明文
    	dest := make([]byte,len(src))
    	//解密
    	blockMode.CryptBlocks(dest,src)
    
    	NewText := UnPaddingText(dest)
    
    	return NewText,nil
    }
    
    func main(){
    	src := []byte("单枪匹马你别怕,一腔孤勇又如何!")
    	key := []byte("12345678")
    
    	ciphertext,err := EncryptDES(src,key)
    	if err != nil{
    		fmt.Println("Encrypt err:",err)
    		return
    	}
    	fmt.Printf("%x\n",ciphertext)
    
    	plaintext,err := DecryptDES(ciphertext,key)
    	if err != nil{
    		fmt.Println("Decrypt err:",err)
    		return
    	}
    
    	fmt.Println(string(plaintext))
    }
    
    展开全文
  • 常用算法有:DES,3DES,AES; 公钥加密:生成一密钥对(私钥和公钥),加密时用私钥加密,解密时用公钥解密 特点:解决了密钥交换问题。 局限:对大数据加密速度慢。 单向加密:提取数据特征码 特点:定长...

    对称加密:加密和解密使用同一个密钥
    特点:保证了数据的保密性。
    局限性:无法解决密钥交换问题。
    常用的算法有:DES,3DES,AES;

    公钥加密:生成一个密钥对(私钥和公钥),加密时用私钥加密,解密时用公钥解密
    特点:解决了密钥交换问题。
    局限性:对大的数据加密速度慢。

    单向加密:提取数据的特征码
    特点:定长输出,不可逆,可检验数据的完整性。
    局限性:无法保证数据的保密性。
    常用算法:MD5、SHA1、CRC-32。

    三种加密方法各有优缺点,在时实际应用中,数据从发送方到达接收方,
    通常是这样应用的:

    1)首先对要发送的数据做单向加密,获取数据的特征码;
    2)对特征码用发送方的私钥进行加密生成S1;
    3)然后对S1和数据进行对称加密生成S2;
    4)最后将S2和对称加密的密码使用接收方的公钥进行加密。

    这样一来数据在传输过程中的完整性、保密性以及对发送方身份的验证都能得到保障。

    当数据到达接收方时,接收方先用自己的私钥对接收到的数据进行解密,得到密码和加密的数据;
    使用密码对加密数据解密,得到加密的特征码和数据;用发送方的公钥解密特征码,如果能解密,
    则说明该数据是由发送方所发;反之则不是,这便实现了身份验证;最后计算数据的特征码和解密出来的特征码做对比,
    如果一样,则该数据没有被修改;反之则数据被修改过了。

    展开全文
  • DES 主要问题是密钥长度较短,渐渐不适合于分布式开放网络对数据加密安全性的要求。因此,1998年美国政府决定不再继续延用 DES 作为联邦加密标准,并发起了征集 AES 候选算法活动。征集活动对 AES 基本要求是...
  • 对称加密算法-DES以及DESede算法

    万次阅读 2011-03-28 22:23:00
    因为加解密的数据安全性和密钥长度成正比。des的56位的密钥已经形成安全隐患,在1998年之后就很少被采用。但是一些老旧的系统还在使用。因为这des算法并没有被美国标准委员会公布全部算法,大家一致怀疑被留了后门...

    一、简述

      对称加密算法就是能将数据加解密。加密的时候用密钥对数据进行加密,解密的时候使用同样的密钥对数据进行解密。

      DES是美国国家标准研究所提出的算法。因为加解密的数据安全性和密钥长度成正比。des的56位的密钥已经形成安全隐患,在1998年之后就很少被采用。但是一些老旧的系统还在使用。因为这个des算法并没有被美国标准委员会公布全部算法,大家一致怀疑被留了后门。所以慢慢就被淘汰掉了。

      后来针对des算法进行了改进,有了三重des算法(DESede)。针对des算法的密钥长度较短以及迭代次数偏少问题做了相应改进,提高了安全强度。不过desede算法处理速度较慢,密钥计算时间较长,加密效率不高问题使得对称加密算法的发展不容乐观。

    二、交互模型

    1、消息传递双方约定密钥,通常由消息发送方(甲方)构建密钥通知消息接收方(乙方)

    2、甲方使用密钥对数据记性加密,然后将加密后的数据通过网络传送给乙方

    3、乙方接收到数据,然后使用约定的密钥对数据进行解密

     

    整个模型很像hmac的数据交互过程,都是一个密钥的概念,而且密钥都是双方知道的。但是hmac算法是信息摘要的获取。这边是对数据进行加解密

     

    三、java6和bouncycastle针对des算法的数据加密支持还是不同的。体现在密钥长度,工作模式以及填充方式上。这里bouncycastle的密钥长度是64位。不过在DESede算法上bouncy castle也是密钥长度比java6的密钥长度要长。

        不过所有的对称加密算法的实现还是类似的。可以参看如下的代码:

    1、des算法

    2、desede算法演示

    四、总结

    1、主要看设定密钥的长度的变化。同时,bouncycastle支持更多的填充模式,在相同算法上比java6实现的版本的密钥长度要长

    2、java的api中仅仅提供了DES,DESede和PBE 3三种对称加密算法密钥材料实现类

     

     

    展开全文
  • Android安全初学笔记

    2017-04-29 17:38:00
    安全主要解决4类问题 保密:不希望第方窥探 鉴别:与你通信人可以被确认 完整:不能被随意篡改,或者能鉴别是否被篡改 不可否认:能确认产生信息人,并且产生该信息人在何时都无法否认产生了该信息 ...
  • 12. 数据安全包含【可用】、【完整】、【保密三个基本特性。 13. 通过同余式计算 3201 % 11=【3】。 14. 通过同余式计算 560 模 56 的的余数是【1】 15. 为了掩盖密文统计特征,香农将两个概念【混淆】和...
  • Des Moines Independent中具有里程碑意义判决中提及标志“校舍之门”。社区学区,393 US 503(1969)另外两联邦巡回法院通过以其他理由决定审理这些案件,从而完全避免了这个问题。 2015年,第五巡回上诉...
  • 3DES(Triple DES):是基于DES,对一块数据用三个不同密钥进行三次加密,强度更高。 AES(Advanced Encryption Standard):高级加密标准,是下一代加密算法标准,速度快,安全级别高 特点:速度快,适合大...
  • 加密算法

    2018-02-25 11:54:00
    结合秘钥+算法 加密文件 和 解密文件 计算速度很快安全性 几乎完全依赖于秘钥要与多人通信,只要有一人知道秘钥 那个人就可以破解所有人信息,除非每秘钥不同一定程度上解决了机密性的问题,但是没办法...
  • AES加密算法

    2021-04-20 10:26:08
    上一节介绍的3DES,实际上只是DES的变体,他通过三重加密的方式保障了安全性,但是随之而来的巨大的计算量消耗,带来的就是加解密速度慢,效率不高的问题。 为了解决这个问题,美国NIST早在1997年就发布了公开...
  • 金融系统中密钥要求

    千次阅读 2007-10-11 16:34:00
    《银行卡安全问题的研究》 ◆ 东莞市农村信用合作联社毛小青◆ 东莞理工学院城市学院 刘运城银行密钥体系结构: ...第一层,MK为加密机主密钥, 由三个成分组成,采用双倍标准3DES密钥(长达128),存放在硬件加密
  • 哈工大mooc测试3

    2020-05-29 10:56:21
    我们所讨论的安全问题????,无非就四: 保密 端点鉴别 数据完整 运行过程的安全(eg.访问控制权) 错题 单选 借助第方服务进行拒绝服务攻击方法是 SYN攻击 RDDoS(√) DDoS DoS 解析:网络中DNS...
  • AES设计有三个密钥长度:128,192,256位,相对而言,AES的128密钥比DES的56密钥强1021倍。AES算法主要包括三个方面:轮变化、圈数和密钥扩展。在理论上,此加密方法需要国家军事量级的破解设备运算10年以上时间才可能...
  • 密钥随身携带,从而再次提高了数据的安全性,以此实现更高规格防暴力破解。 基于TrueCrypt7.1a主要修改 界面细节诸多优化 内核驱动一些BUG处理 安装包体积缩小至1.67M,便携压缩包缩小至0.9M 完美支持...
  • 转换加密使用三个数学上相关密钥:一个用于将明文加密给收件人,第二个用于解密密文,第三个将加密密文转换为一个收件人,以便其他收件人可以解密。 哈希函数 - 广泛使用散列函数产生 128 位散列值。 MD5 最初...
  • 密钥随身携带,从而再次提高了数据的安全性,以此实现更高规格防暴力破解。 CnCrypt V1.11 修改记录 实现单文件绿色版本,包括安装,创建,加载功能 修正V1.10中存在一些细节BUG 密钥文件按钮上显示当前密钥...
  • asp.net知识库

    2015-06-18 08:45:45
    第2章 并发操作一致性问题 (2) Using sqlite with .NET Visual Studio 2005 中新 DataSet 特性 MySQL 和 .Net2.0配合使用 与DotNet数据对象结合自定义数据对象设计 (二) 数据集合与DataTable 与DotNet数据对象...
  • openssl-1.0.0a

    热门讨论 2010-06-19 12:33:49
    事实上,DES算法里面不仅仅是常用的DES算法,还支持三个密钥和两个密钥3DES算法。 [编辑本段]非对称加密算法  OpenSSL一共实现了4种非对称加密算法,包括DH算法、RSA算法、DSA算法和椭圆曲线算法(EC)。DH算法一般...
  • 利用该方法加密,然后再结合其他加密方式,比如AES,DES等,可以有效保证你数据安全! C#源代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using ...
  • 综合发挥两种加密算法优点,既利用了对称加密算法速度快优点,又利用了公钥加密算法的安全性特性。 自主访问控制和强制访问控制区别是什么?基于角色访问控制和前两者相比有何优点? 自主访问...
  • , 并且首次把安全通道概念引入到基于硬件软件保护中,彻底解决了被保护软件和安全硬件的安全通信的问题,同时基于许可证设计,具有更大灵活和易用,给软件开发商提供了一崭新和强大软件保护平台。...
  • OpenSSL-1_0_0d_Win32

    热门讨论 2011-04-13 17:57:46
    事实上,DES算法里面不仅仅是常用的DES算法,还支持三个密钥和两个密钥3DES算法。 2.非对称加密算法 OpenSSL一共实现了4种非对称加密算法,包括DH算法、RSA算法、DSA算法和椭圆曲线算法(EC)。DH算法一般用户密钥...
  • 大家使用openssl目的无非就是这三个方面了,1、密码学计算,什么RSA加密解密 ,RSA签名,AES,DES啥啥啥, 2、生成证书,在写这个源码之前,不仅仅是 易语言 届,包括绝大多数需要自签名证书,都是调用openssl...
  • 23.8.3 安全检查程序的问题 23.8.4 系统泄密衙怎么办 23.9 加限制环境 23.9.1 加限制外壳 23.9.2 用chroot()限制用户 23.10 小系统安全 23.11 物理安全 23.12 用户意识 23.13 系统管理员意识 23.13.1 保持系统...
  • QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新好友列表,响应用户双击事件,并得到好友编号,把聊天界面加入到管理类,设置密码保护等。 Java编写网页版魔方游戏 内容索引:JAVA...
  • JAVA上百实例源码以及开源项目

    千次下载 热门讨论 2016-01-03 17:37:40
     QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新好友列表,响应用户双击事件,并得到好友编号,把聊天界面加入到管理类,设置密码保护等。 Java编写网页版魔方游戏 内容索引:JAVA...

空空如也

空空如也

1 2 3 4
收藏数 72
精华内容 28
关键字:

des的三个安全性问题