加密与解密

python中的RSA加密与解密

北慕城南 提交于 2019-12-04 17:37:52
什么是RSA:   RSA公开密钥密码体制。所谓的公开密钥密码体制就是使用不同的加密密钥与解密密钥,是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。   在公开密钥密码体制中,加密密钥(即公开密钥)PK是公开信息,而解密密钥(即秘密密钥)SK是需要保密的。加密算法E和解密算法D也都是公开的。虽然解密密钥SK是由公开密钥PK决定的,但却不能根据PK计算出SK。   正是基于这种理论,1978年出现了著名的RSA算法,它通常是先生成一对RSA 密钥,其中之一是保密密钥,由用户保存;另一个为公开密钥,可对外公开,甚至可在网络服务器中注册。为提高保密强度,RSA密钥至少为500位长,一般推荐使用1024位。这就使加密的计算量很大。为减少计算量,在传送信息时,常采用传统加密方法与公开密钥加密方法相结合的方式,即信息采用改进的DES或IDEA密钥加密,然后使用RSA密钥加密对话密钥和信息摘要。对方收到信息后,用不同的密钥解密并可核对信息摘要。   RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。RSA是被研究得最广泛的公钥算法,从提出到现今的三十多年里,经历了各种攻击的考验,逐渐为人们接受,截止2017年被普遍认为是最优秀的公钥方案之一。 SET(Secure Electronic Transaction)协议中要求CA采用2048bits长的密钥

加密与解密day1

点点圈 提交于 2019-12-04 09:07:46
1.1、静态分析技术和动态分析技术 1.2、字节序 1.3、wow64(可运行32位环境) 1.4、虚拟内存 1.5、汇编引擎和反汇编引擎 1.6、32位程序中函数调用的栈(4.1.2) 1.7、全局变量(4.1.3) 1.8、64位程序中函数调用栈(4.2.2) 1.9、C++中的this_call 1.10、攻击序列号    来源: https://www.cnblogs.com/Ccluck-tian/p/11849258.html

信息的加密与解密

匿名 (未验证) 提交于 2019-12-03 00:05:01
信息的加密现有两种 对称加密:使用同一个密钥对信息进行加密和解密称为对称加密。 使用场景:A与B共同约定并存储一个密钥。 A -> B: A 使用密钥对数据进行加密后得到加密的信息发送给 B,B 使用该密钥对加密的信息进行解密,得到原始信息。 B -> A: B 使用密钥对数据进行加密后得到加密的数据发送给 A,A 使用该密钥对加密的数据进行解密,得到原始数据。 优点:加密解密速度快。 缺点: 相对不安全,由于 AB 双方使用的是同一个密钥进行加密解密,任何一方的密钥泄漏,整个加密解密过程就暴露了。 在与多方进行通信的时候必须使用不同的密钥,多个密钥造成密钥管理困难。如果 A 与 B 通信时和 A 与 C 通信时使用的是同一个密钥,那么如果 C 获取到了 A 与 B 通信时加密的信息就可以使用密钥进行解密,造成 A 与 B 之间信息的泄露。 非对称加密:加密和解密使用不同的密钥。如果加密使用的是公钥,那么就必须要私钥来解密。如果加密使用的是私钥,必须要公钥进行解密。在此需要先了解公钥、私钥这两个概念。 公钥:供给别人使用的密钥,使用公钥对信息加密的过程称之为加密,主要目的为防止信息传输过程中的泄漏。因为用于解密的私钥只有自己拥有。 私钥:供给自己使用的密钥,使用私钥对信息加密的过程称之为签名,主要目的是为了确保信息是由自己发出的

Python的加密与解密

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

RSA 登陆加密与解密

依然范特西╮ 提交于 2019-12-01 17:07:49
最近公司项目验收后,客户请来的信息安全技术人员对我们的网站进行了各种安全测试与排查问题,其中就有一个登陆时的加密问题。本来如果只是单纯的加密,可以直接在前台用MD5加密,将加密的值添加到数据库即可。但是现在的项目里有很多的用户,密码也是后台MD5加密了的。这样就不能单纯在前台用MD5加密,可能是本人能力有限,使用的前台MD5加密与后台的MD5加密的值不一致,用户登陆在密码比对的时候就会失败登陆不了。只能使用非对称加密,前台加密后台解密后使用MD5加密再作对比,这种做法才能使用改动最少。网上查资料后就使用了RSA非对称加密。 https://www.cnblogs.com/amylis_chen/p/6054414.html 前端代码 <script src="http://code.jquery.com/jquery-1.8.3.min.js"></script> <script src="http://passport.cnblogs.com/scripts/jsencrypt.min.js"></script> <script> var encrypt = new JSEncrypt(); encrypt.setPublicKey("公钥可以用工具生成"); var userPwd = encrypt.encrypt(输入的密码); //加密后的密码 </script>

C# 网络加密与解密

天涯浪子 提交于 2019-12-01 13:20:29
     数据在网络传输过程中的保密性是网络安全中重点要考虑的问题之一。由于通过网络传递数据是在不安全的信道上进行传输的,因此通信双方要想确保任何可能正在侦听的人无法理解通信的内容,而且希望确保接收方接收的信息没有在传输期间被任何人修改,最好的办法就是在传输数据前对数据进行加密,接收方接收到加密的数据后再进行解密处理,从而保证数据的安全性。   在.NET 库的System.Security.Cryptography 命名空间中,包含多种加密数据的类,涉及多种加密算法。加密方法主要分为两大类:对称加密和不对称加密。 1 对称加密   对称加密也称为私钥加密,采用私钥算法,加密和解密数据使用同一个密钥。由于具有密钥的任意一方都可以使用该密钥解密数据,因此必须保证该密钥不能被攻击者获取,否则就失去了加密的意义。   私钥算法以块为单位加密数据,一次加密一个数据块。因此对称加密支持数据流,是加密流数据的理想方式。   .NET 类库使用的私钥算法有RC2、DES、TripleDES 和Rijndael。这些算法通过加密将n字节的输入块转换为加密字节的输出块。如果要加密或解密字节序列,必须逐块进行。由于n很小(对于RC2、DES 和TripleDES 算法,n 的值为8 字节、16 字节或24 字节,默认值为16字节;对于Rijndael 算法,n 的值为32 字节)

mysql 中使用AES加密与解密处理数据

冷暖自知 提交于 2019-11-30 10:39:33
mysql 中使用AES加密与解密处理数据 最近在做项目的时候,需要对一个敏感信息进行加密,但是加密密文又需要可以逆转,因为mysql支持AES,因此选择AES,用法比较简单,如下: -- AES加密,加密得到的是二进制 SELECT AES_ENCRYPT('123456','sdfsdfd'); -- AES加密后进行二进制转成16进制 SELECT HEX(AES_ENCRYPT('123456','sdfsdfd')); -- AES解密 SELECT AES_DECRYPT(AES_ENCRYPT('123456','sdfsdfd') ,'sdfsdfd'); -- AES加密后进行转成16进制,再转二进制进行解密 SELECT AES_DECRYPT(UNHEX(HEX(AES_ENCRYPT('123456','sdfsdfd'))),'sdfsdfd'); -- AES解密16进制 SELECT AES_DECRYPT(UNHEX('2CB8717652447287132E874E710976CC'),'sdfsdfd') ; 来源: https://my.oschina.net/u/3339803/blog/3110313

py 二级习题(加密与解密)

自闭症网瘾萝莉.ら 提交于 2019-11-30 02:35:40
题目: 1、比如说,我想 “我喜欢月月” 这句话加密即:将字符串中的每个字符的unicode值全都向后移动三位,即unicode 值加3,然后输出。 2、将按照上述规则加密的文字解密即:将字符串中的每个字符的unicode值全都向前减三。 #caesarencode programme while True: txt = input("please type you word:") for i in txt: if "a" <= i <="z": #这是最关键的一步,通过对26取余数,可以再a-z,或者在A-Z,这26个英文字母中重复 print(chr(ord("a")+(ord(i)-ord("a")+3)%26),end = '') elif "A"<= i <="Z": print(chr(ord("A")+(ord(i)-ord("A")+3)%26),end = '') else: print(i,end = '') #anather way txt = input("please input you number") c = 0x4e00 di = {} for i in range(20902): # 这也是加密的方法,用的是字典的方法,并且将你输入的每个文字,都转换成了对第一个中文字符的移动,当然这是对中文进行加密,中文的unicode 值范围在0x4e00

信息的加密与解密

僤鯓⒐⒋嵵緔 提交于 2019-11-29 15:16:38
信息的加密与解密 信息的加密现有两种 对称加密:使用同一个密钥对信息进行加密和解密称为对称加密。 使用场景:A与B共同约定并存储一个密钥。 A -> B: A 使用密钥对数据进行加密后得到加密的信息发送给 B,B 使用该密钥对加密的信息进行解密,得到原始信息。 B -> A: B 使用密钥对数据进行加密后得到加密的数据发送给 A,A 使用该密钥对加密的数据进行解密,得到原始数据。 优点:加密解密速度快。 缺点: 相对不安全,由于 AB 双方使用的是同一个密钥进行加密解密,任何一方的密钥泄漏,整个加密解密过程就暴露了。 在与多方进行通信的时候必须使用不同的密钥,多个密钥造成密钥管理困难。如果 A 与 B 通信时和 A 与 C 通信时使用的是同一个密钥,那么如果 C 获取到了 A 与 B 通信时加密的信息就可以使用密钥进行解密,造成 A 与 B 之间信息的泄露。 非对称加密:加密和解密使用不同的密钥。如果加密使用的是公钥,那么就必须要私钥来解密。如果加密使用的是私钥,必须要公钥进行解密。在此需要先了解公钥、私钥这两个概念。 公钥:供给别人使用的密钥,使用公钥对信息加密的过程称之为加密,主要目的为防止信息传输过程中的泄漏。因为用于解密的私钥只有自己拥有。 私钥:供给自己使用的密钥,使用私钥对信息加密的过程称之为签名,主要目的是为了确保信息是由自己发出的