【Python教程】rsa加密算法详解

零 Python教程评论43字数 1570阅读5分14秒阅读模式

所需工具:

python

聪明的大脑文章源自灵鲨社区-https://www.0s52.com/bcjc/pythonjc/12128.html

勤劳的双手文章源自灵鲨社区-https://www.0s52.com/bcjc/pythonjc/12128.html

 文章源自灵鲨社区-https://www.0s52.com/bcjc/pythonjc/12128.html

注意:本站只提供教程,不提供任何成品+工具+软件链接,仅限用于学习和研究,禁止商业用途,未经允许禁止转载/分享等文章源自灵鲨社区-https://www.0s52.com/bcjc/pythonjc/12128.html

 文章源自灵鲨社区-https://www.0s52.com/bcjc/pythonjc/12128.html

教程如下

前言:文章源自灵鲨社区-https://www.0s52.com/bcjc/pythonjc/12128.html

rsa加密,是一种加密算法,目前而言,加密算法,是对数据、密码等进行加密。第一次接触rsa加密算法是linux中免密登陆设置,当时一直以为密钥加密是像token一样的,直到现在才发现并不是,而是一种数据加密的方式,其实也可以理解,在Linux设计哲学的理解下:“一切皆文件”,就可以把他们当成类似的东西来理解。无非就是拿着a字符串和b字符串进行比较,如果返回trun,那么就可以进行下一步的操作,否则就会被返回异常。文章源自灵鲨社区-https://www.0s52.com/bcjc/pythonjc/12128.html

在这里,其实有一个逻辑,就是先把数据进行一次加密,然后进行数据传输,在接收到数据后,发现数据是乱码,或者说是加密过后的数据,所以想要看到实际数据,就需要对数据进行解密。文章源自灵鲨社区-https://www.0s52.com/bcjc/pythonjc/12128.html

所以在常规的加密过程中,许多接口中的数据我们是已经可以获取到的,但是获取到的数据是乱码,一般如果想要继续增加安全性,就可以在获取数据的时候加签,即在给访问接口的服务返回数据时,就进行验证,在他发送接收数据请求时,就拒绝他。文章源自灵鲨社区-https://www.0s52.com/bcjc/pythonjc/12128.html

也就是说,目前的接口加密,其实是从两个点出发:文章源自灵鲨社区-https://www.0s52.com/bcjc/pythonjc/12128.html

一、接收数据请求时(数据返回前)
二、数据本身加密(数据返回后)(如果请求,就把数据返回,但是我赌的是他拿到数据也不会解读出来。狗头)

就目前而言,我所能想到的加密方案,也都是对字符串加密,或者对一些标识符进行加密,也就是发生在数据返回前所发生的事件。不知道别的大佬还有没有别的骚操作。

技术测试实现:

在这里使用rsa包直接进行,python第三方库实现加密的还有一个pycryptodome,两个包都可以实现。在这里使用rsa。

代码逻辑简单说一下,也做了几个测试:

一、直接生成密钥,然后进行加密,解密,
二、先生成密钥,然后将密钥写入文件保留下来,然后再读出来使用
三、直接生成密钥,然后将密钥写成字符串,放在代码中,直接使用

上述三种,其实从逻辑上讲,都应该是支持的,如果不支持,那么就应该是过程中某个地方的格式有问题。需要进行常规处理。

在使用过程中,有一个地方需要特别注意,就是需要加密的字符串要进行encoding,在解密是需要进行decode。不要忘记这一点。否则你会发现加密时就会报错。

[php]

import rsa
def secorty_data():
(pub_key,sec_key) = rsa.newkeys(1024)
pub = pub_key.save_pkcs1()
file = open('./pub.pem','wb+')
file.write(pub)
sec = sec_key.save_pkcs1()
files = open('./sec.pem','wb+')
files.write(sec)
def create_rsa():
file = open('./pub.pem','rb')
content = file.read()
print(content)
file1 = open('./sec.pem','rb')
content1 = file1.read()
print(content1)
pub_key = rsa.PublicKey.load_pkcs1(content)
sec_key = rsa.PrivateKey.load_pkcs1(content1)
message = '今天的天气有点热,但整体还是很好'
data = rsa.encrypt(message.encode(),pub_key)
print(data)
result = rsa.decrypt(data,sec_key)
print(result.decode())
if __name__ == '__main__':

secorty_data()

create_rsa()

[/php]

零
  • 转载请务必保留本文链接:https://www.0s52.com/bcjc/pythonjc/12128.html
    本社区资源仅供用于学习和交流,请勿用于商业用途
    未经允许不得进行转载/复制/分享

发表评论