des

python 各种加密

匿名 (未验证) 提交于 2019-12-02 22:54:36
加密学习 对称加密 对称密钥加密 , 又叫私钥加密。即信息发送的方和接受方用一个密钥去加密和揭秘数据。 最大的优势是 加解密速度快,适合对大量数据进行加密, 对称加密的缺点是密钥的管理和分配, 换句话说就是 如何把密钥发送到需要解密你的消息的人手里的问题。在发送密钥的过程中, 密钥有很大的风险被黑客拦截。 现实中的做法是将对称加密的密钥进行非对称加密然后传给需要他的人。 非对称加密 1) Alice需要在银行的网站做一笔交易,她的浏览器首先生成了一个随机数作为对称密钥。 (2) Alice的浏览器向银行的网站请求公钥。 (3) 银行将公钥发送给Alice。 (4) Alice的浏览器使用银行的公钥将自己的对称密钥加密。 (5) Alice的浏览器将加密后的对称密钥发送给银行。 (6) 银行使用私钥解密得到Alice浏览器的对称密钥。 (7) Alice与银行可以使用对称密钥来对沟通的内容进行加密与解密了。 (三)总结 (1) 对称加密加密与解密使用的是同样的密钥,所以速度快,但由于需要将密钥在网络传输,所以安全性不高。 (2) 非对称加密使用了一对密钥,公钥与私钥,所以安全性高,但加密与解密速度慢。 (3) 解决的办法是将对称加密的密钥使用非对称加密的公钥进行加密,然后发送出去,接收方使用私钥进行解密得到对称加密的密钥,然后双方可以使用对称加密来进行沟通。 python3

python 实现 DES CBC模式加解密

匿名 (未验证) 提交于 2019-12-02 22:51:30
# -*- coding=utf-8-*- from Crypto.Cipher import DES import base64 """ des cbc加密算法 padding : PKCS5 """ class DESUtil: __BLOCK_SIZE_8 = BLOCK_SIZE_8 = DES.block_size __IV = "\0\0\0\0\0\0\0\0" # __IV = chr(0)*8 @staticmethod def encryt(str, key): cipher = DES.new(key, DES.MODE_CBC, DESUtil.__IV) x = DESUtil.__BLOCK_SIZE_8 - (len(str) % DESUtil.__BLOCK_SIZE_8) if x != 0: str = str + chr(x)*x msg = cipher.encrypt(str) # msg = base64.urlsafe_b64encode(msg).replace('=', '') msg = base64.b64encode(msg) return msg @staticmethod def decrypt(enStr, key): cipher = DES.new(key, DES.MODE_CBC,DESUtil.__IV) #

Python的加密与解密

匿名 (未验证) 提交于 2019-12-02 22:51:30
前言 据记载,公元前400年,古希腊人发明了置换密码。1881年世界上的第一个电话 保密专利出现。在第二次世界大战期间,德国军方启用“恩尼格玛”密码机, 密码学在战争中起着非常重要的作用。 随着信息化和数字化社会的发展,人们对信息安全和保密的重要性认识不断提高, 于是在1997年,美国国家标准局公布实施了“美国数据加密标准(DES)”, 民间力量开始全面介入密码学的研究和应用中,采用的加密算法有DES、RSA、SHA等。 随着对加密强度需求的不断提高,近期又出现了AES、ECC等。 使用密码学可以达到以下目的: 保密性:防止用户的标识或数据被读取。 数据完整性:防止数据被更改。 身份验证:确保数据发自特定的一方。 加密算法分类 对称加密算法: 对称加密采用了对称密码编码技术,它的特点是文件加密和解密使用相同的密钥 发送方和接收方需要持有同一把密钥,发送消息和接收消息均使用该密钥。 相对于非对称加密,对称加密具有更高的加解密速度,但双方都需要事先知道密钥,密钥在传输过程中可能会被窃取,因此安全性没有非对称加密高。 常见的对称加密算法:DES,AES,3DES等等 非对称加密算法: 文件加密需要公开密钥(publickey)和私有密钥(privatekey)。 接收方在发送消息前需要事先生成公钥和私钥,然后将公钥发送给发送方。发送放收到公钥后,将待发送数据用公钥加密,发送给接收方

3DES加密解密

匿名 (未验证) 提交于 2019-12-02 22:10:10
C#3DES加密解密,JAVA、PHP可用 using System ; using System . Security . Cryptography ; using System . Text ; namespace TT . Utilities . Encrypt { public class DES3 { /// <summary> /// utf-8编码 /// 加密模式ECB,填充类型PKCS7 /// </summary> /// <param name="str_content"></param> /// <param name="str_keys">24λkey</param> /// <returns></returns> public static string DES3_Encrypt ( string str_content , string str_keys ) #region { Encoding encoding = Encoding . UTF8 ; byte [] content = encoding . GetBytes ( str_content ); byte [] keys = encoding . GetBytes ( str_keys ); TripleDESCryptoServiceProvider tdsc = new

Java 3DES加密解密(Commons.Codec Base64)

匿名 (未验证) 提交于 2019-12-02 21:53:52
依赖包 import org.apache.commons.codec.digest.DigestUtils; import javax.crypto.Cipher; import javax.crypto.SecretKey; import javax.crypto.spec.SecretKeySpec; import org.apache.commons.codec.binary.Base64; 算法代码 /** * 转换成十六进制字符串 * @param username * @return * * lee on 2017-08-09 10:54:19 */ public static byte[] hex(String key){ String f = DigestUtils.md5Hex(key); byte[] bkeys = new String(f).getBytes(); byte[] enk = new byte[24]; for (int i=0;i<24;i++){ enk[i] = bkeys[i]; } return enk; } /** * 3DES加密 * @param key 密钥,24位 * @param srcStr 将加密的字符串 * @return * * lee on 2017-08-09 10:51:44 */ public

DES加密算法java实现

匿名 (未验证) 提交于 2019-12-02 21:52:03
转载自: https://blog.csdn.net/zyhlwzy/article/details/77948137 由于计算机软件的非法复制,通信的泄密、数据安全受到威胁,解密及盗版问题日益严重,甚至引发国际争端,所以在信息安全技术中,加密技术占有不可替代的位置,因此对信息加密技术和加密手段的研究与开发,受到各国计算机界的重视,发展日新月异。 在系统研发过程中,有些数据对于系统或者用户来说,都是非常重要且不可泄露的,对重要数据的加密对于任何系统来说都是非常必要的,例如用户的登录密码,交易密码等等,本文借助用户注册时对用户密码的加密,来大致说说一些常用的加密算法以及相关实现。 DES加密算法 DES加密算法是一种分组密码,以64位为分组对数据加密,它的密钥长度是56位,加密解密用同一算法。DES加密算法是对密钥进行保密,而公开算法,包括加密和解密算法。这样,只有掌握了和发送方相同密钥的人才能解读由DES加密算法加密的密文数据。 DES算法的入口参数有三个:Key、Data、Mode。其中Key为8个字节共64位,是DES算法的工作密钥;Data也为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:加密或解密。 DES算法是这样工作的:如Mode为加密,则用Key 去把数据Data进行加密, 生成Data的密码形式(64位)作为DES的输出结果

常用的对称加密算法

Deadly 提交于 2019-12-02 12:00:39
文章目录 `1、DES(Data Encryption Standard)` `2、3DES(Triple DES)` `3、AES(Advanced Encryption Standard)推荐使用` 需要对加密和解密使用相同密钥的加密算法。由于其速度快,对称性加密通常在消息发送方需要加密大量数据时使用。对称性加密也称为密钥加密。 所谓对称,就是采用这种加密方法的双方使用方式用同样的密钥进行加密和解密。密钥是控制加密及解密过程的指令。算法是一组规则,规定如何进行加密和解密。 因此加密的安全性不仅取决于加密算法本身,密钥管理的安全性更是重要。因为加密和解密都使用同一个密钥,如何把密钥安全地传递到解密者手上就成了必须要解决的问题。 在对称加密算法中常用的算法有:DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK等。 下面列举几个比较常用的: 1、DES(Data Encryption Standard) DES加密算法出自IBM的研究,后来被美国政府正式采用,之后开始广泛流传,但是近些年使用越来越少,因为DES使用56位(8字节)密钥,以现代计算能力, 24小时内即可被破解。虽然如此,在某些简单应用中,我们还是可以使用DES加密算法 特点:数据加密标准,速度较快,适用于加密大量数据的场合 提供一个 DES 加密工具类: package

DES与3DES 加解密实例(c++)

我与影子孤独终老i 提交于 2019-12-02 11:43:09
DES与3DES 加解密实例(c++) ###DES原理: DES算法是一种对称密码算法,也是一种分组加密的算法,以64位分组对数 据加密的,其密钥长度为64位,密钥事实上是56位参与DES运算(第8、16、24、 32、40、48、56、64位是校验位,使得每个密钥都有奇数个1),分组后的明文组和 56位的密钥按位替代或交换的方法形成密文组。 DES算法的主要流程如下图所示 。 1、 IP置换 IP置换目的是将输入的64位数据块按位重新组合,并把输出分为L0、R0两部分, 每部分各长32位 2、密码置换 DES的密钥由64位减至56位,每个字节的第8位作为奇偶校验位。产生的56位 密钥。在DES的每一轮中,从56位密钥循环左移再置换产生出不同的48位子密钥。 总共16轮,所以有16个子密钥。 4、E扩展置换 扩展置置换目标是IP置换后获得的右半部分R0,将32位输入扩展为48位(分为4 位×8组)输出。 扩展置换目的有两个:生成与密钥相同长度的数据以进行异或运算;提供更长的结 果,在后续的替代运算中可以进行压缩。 5、S盒代替 压缩后的密钥与扩展分组异或以后得到48位的数据,将这个数据送人S盒,进行替 代运算。替代由8个不同的S盒完成,每个S盒有6位输入4位输出。48位输入分 为8个6位的分组,一个分组对应一个S盒,对应的S盒对各组进行代替操作。 5、 P盒置换

DES算法与四种加密模式的代码实现(C++语言)

人盡茶涼 提交于 2019-12-02 08:46:37
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/Love_Irelia97/article/details/102597577 本文主要是对《信息安全技术》的DES算法实验作业的一些总结,不会着重地介绍算法原理,而会在算法实现过程中给出自己的理解 (因为有些部分我也不知道正确与否,如有错误请指教)。 文章中出现的原理介绍和配图,均参考自其它博客,相关链接将在文中给出。 另外,文中的代码都是根据内容截取的,若想查看 完整代码 ,请参考 DES - github 一、DES算法简介(参考自 DES算法实例详解 ) DES(Data Encryption Standard)是一种用于电子数据加密的对称密钥块加密算法。 它以64bit一组的明文 (Input) 作为算法的输入,通过一系列复杂的操作,输出同样64bit长度的密文 (Output) 。DES 同样采用64位密钥 (Key) ,但由于每8bit中的最后1位用于奇偶校验,实际有效密钥长度为56bit ( Tips:输入的Key依然是64bit,只是在映射时不对每个字节最后1位进行处理,所以变为了56bit ) 。 DES 使用加密密钥定义变换过程,因此算法认为只有持有加密所用的密钥的用户才能解密密文

DES算法概述

谁都会走 提交于 2019-12-02 01:57:52
DES全称为Data Encryption Standard,即数据加密标准。1997年数据加密标准DES正式公布,其分组长度为64比特,密钥长度为64比特,其中8比特为奇偶校验位,所以实际长度为56比特。现在DES已经被AES所取代。 DES原理和具体计算过程示例可以参考:DES加密教程详细解读 C#可以使用自带的类库简单的完成DES加密,主要用到以下三个类: MemoryStream 内存流 DESCryptoServiceProvider 加密服务提供者类 CryptoStream 将数据流连接到加密转换的流 来源: https://www.cnblogs.com/Jeely/p/11724660.html