python3中rsa加密算法详情

前言:

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

在这里,其实有一个逻辑,就是先把数据进行一次加密,然后进行数据传输,在接收到数据后,发现数据是乱码,或者说是加密过后的数据,所以想要看到实际数据,就需要对数据进行解密。

所以在常规的加密过程中,许多接口中的数据我们是已经可以获取到的,但是获取到的数据是乱码,一般如果想要继续增加安全性,就可以在获取数据的时候加签,即在给访问接口的服务返回数据时,就进行验证,在他发送接收数据请求时,就拒绝他。

也就是说,目前的接口加密,其实是从两个点出发:

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

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

技术测试实现:

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

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

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

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

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

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()

到此这篇关于python3中rsa加密算法详情的文章就介绍到这了,更多相关 rsa加密 内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python3加密解密库Crypto的RSA加解密和签名/验签实现方法实例

    关于非对称加密算法我就不过多介绍了,本文着重于python3对RSA算法的实现. from Crypto.PublicKey import RSA import Crypto.Signature.PKCS1_v1_5 as sign_PKCS1_v1_5 #用于签名/验签 from Crypto.Cipher import PKCS1_v1_5 #用于加密 from Crypto import Random from Crypto import Hash x = RSA.generate(204

  • Python3非对称加密算法RSA实例详解

    本文实例讲述了Python3非对称加密算法RSA.分享给大家供大家参考,具体如下: python3 可以使用 Crypto.PublicKey.RSA 和 rsa 生成公钥.私钥. 其中 python3.6 Crypto 库的安装方式请参考前面一篇<Python3对称加密算法AES.DES3> rsa 加解密的库使用 pip3 install rsa 就行了 C:\WINDOWS\system32>pip3 install rsa Collecting rsa   Downloading

  • Python3.7 基于 pycryptodome 的AES加密解密、RSA加密解密、加签验签

    Python3.7 基于 pycryptodome 的AES加密解密.RSA加密解密.加签验签,具体代码如下所示: #!/usr/bin/env python # -*- coding: utf8 -*- import os import rsa import json import hashlib import base64 from Crypto.Cipher import AES from ..settings_manager import settings class RSAEncryp

  • python3中rsa加密算法详情

    前言: rsa加密,是一种加密算法,目前而言,加密算法,是对数据.密码等进行加密.第一次接触rsa加密算法是linux中免密登陆设置,当时一直以为密钥加密是像token一样的,直到现在才发现并不是,而是一种数据加密的方式,其实也可以理解,在Linux设计哲学的理解下:“一切皆文件”,就可以把他们当成类似的东西来理解.无非就是拿着a字符串和b字符串进行比较,如果返回trun,那么就可以进行下一步的操作,否则就会被返回异常. 在这里,其实有一个逻辑,就是先把数据进行一次加密,然后进行数据传输,在接收

  • Python实现的rsa加密算法详解

    本文实例讲述了Python实现的rsa加密算法.分享给大家供大家参考,具体如下: 算法过程 1. 随意选择两个大的质数p和q,p不等于q,计算N=pq. 2. 根据欧拉函数,不大于N且与N互质的整数個数為(p-1)(q-1). 3. 选择一个整数e与(p-1)(q-1)互质,并且e小于(p-1)(q-1). 4. 用以下这个公式计算d:d× e ≡ 1 (mod (p-1)(q-1)). 5. 将p和q的记录销毁. (N,e)是公钥,(N,d)是私钥. python代码 # -*- coding

  • 详解.NET中的加密算法总结(自定义加密Helper类续)

    1.1.1 摘要 相信许多人都使用过.NET提供的加密算法,而且在使用的过程我们必须了解每种加密算法的特点(对称或非对称,密钥长度和初始化向量等等).我也看到过很多人写过.NET中加密算法总结,但我发现个别存在一些问题,很多人喜欢罗列每种加密算法的具体实现,假设我们要求实现AES和Triple DES加密算法,的确可以很多地分别给出它们的具体实现. 那我们真的有必要给出每个加密算法的具体实现吗?而且这样的设计不符合OOP设计思想,最重要的是我们要维护多个加密算法啊!OK接下来让我们实行一个可扩展

  • RSA加密算法java简单实现方法(必看)

    简单完整的代码,通过这个代码你将对RSA加密算法在Java中的实现方法有一个初步的了解,这个类,你可以直接使用,水平高的,就自己修改完善下代码. package security; import java.security.*; import java.security.spec.*; import java.security.interfaces.*; import javax.crypto.spec.*; import javax.crypto.interfaces.*; import ja

  • java实现的RSA加密算法详解

    本文实例讲述了java实现的RSA加密算法.分享给大家供大家参考,具体如下: 一.什么是非对称加密 1.加密的密钥与加密的密钥不相同,这样的加密算法称之为非对称加密 2.密钥分为:公钥,私钥 公钥:可以对外给任何人的加密和解密的密码,是公开的 私钥:通过私钥可以生成公钥,但从公钥被认为无法生成公钥(被推导出的概率小到不考虑) 3.当将要加密的内容用公钥加密的时候,只能用私钥来解密 当将要加密的内容用私钥加密的时候,只能用公钥来解密 4.公钥与私钥的关系,利用一个简单的公式来生成公钥和私钥,即非对

  • python3中的md5加密实例

    在python3的标准库中,已经移除了md5,而关于hash加密算法都放在hashlib这个标准库中,如SHA1.SHA224.SHA256.SHA384.SHA512和MD5算法等. 另:在网上找关于python的md5加密,发现要不是比较旧的不适用当前py版本的文章,或者是说得不够清楚的文章,所以还是自己去看下官方文档比较好,顺便整理下关于md5的使用方法. 对于学习任何一门程序类知识,我都认为去看官方文档这种学习方式最有效的之一,只不过一般这些文档都是英文版的,对于一些学习者来说可能会有一

  • python3 常见解密加密算法实例分析【base64、MD5等】

    本文实例讲述了python3 常见解密加密算法.分享给大家供大家参考,具体如下: 一.使用base64 Base64编码,64指A-Z.a-z.0-9.+和/这64个字符,还有"="号不属于编码字符,而是填充字符. 优点:方法简单 缺点:不保险,别人拿到密文可以自己解密出明文 编码原理:将3个字节转换成4个字节((3 X 8)=24=(4X6)),先读入3个字节,每读一个字节,左移8位,再右移四次,每次6位,这样就有4个字节了. 解码原理:将4个字节转换成3个字节,先读入4个6位(用或

  • Go中使用加密算法的方法

    目录 哈希算法 加密模式 对称加密 ⾮对称加密 椭圆曲线加密算法ECC 数字签名 字符编码/解码 巨人的肩膀 哈希算法 md5 128bit,16字节 如:md5 ("hello world!") = fc3ff98e8c6a0d3087d515c0473f8677 // 32位16进制数字 func Test(t *testing.T) { //方法一 str := "hello world!" has := md5.Sum([]byte(str)) md5str

  • Python 中 Shutil 模块详情

    一.什么是shutil shutil可以简单地理解为sh + util ,shell工具的意思.shutil模块是对os模块的补充,主要针对文件的拷贝.删除.移动.压缩和解压操作. 二.shutil模块的主要方法 1. shutil.copyfileobj(fsrc, fdst[, length=16*1024]) copy文件内容到另一个文件,可以copy指定大小的内容.这个方法是shutil模块中其它拷贝方法的基础,其它方法在本质上都是调用这个方法. 让我们看一下它的源码: def copy

  • 详解RSA加密算法的原理与Java实现

    目录 对称加密和非对称加密 RSA加密是什么 RSA的加密过程 前几天阿粉刚刚说了这个 MD5 加密的前世今生,因为 MD5 也确实用的人不是很多了,阿粉就不再继续的一一赘述了,今天阿粉想给大家分享的,是非对称加密中的一种,那就是 RSA 加密算法. 对称加密和非对称加密 在说 RSA 之前,我们得先来说说这个什么事对称加密,什么又是非对称加密? 对称加密指的就是加密和解密使用同一个秘钥,所以叫对称加密.对称加密只有一个秘钥,作为私钥. 非对称加密指的是:加密和解密使用不同的秘钥,一把作为公开的

随机推荐