一、环境
win10
python3.9
二、下载pycrypto
pip install pycrypto
下载完成后去python安装目录下Python39\Lib\site-packages\确认一下crypto是否存在,记得Crypto,C要大写,如果不是,修改一下文件夹即可
三、RSA加密使用
1、PKCS1_v1_5 和 PKCS1_OAEP 使用就不多介绍了
2、NOPAD
原因:手头需要使用NOPAD模式,但pycrypto模块目前只发现PKCS1和PKCS1_OAEP的介绍使用。网上搜了一下,没有想要的,所以直接修改一下
方法:
1、在Python39\Lib\site-packages\Crypto\Cipher下,发现有PKCS1_v1_5 .py 和 PKCS1_OAEP.py,那么很简单新建一个NOPAD_RSA.py, 参照PKCS1_v1_5.py修改一版无填充的实现。如下
# -*- coding: utf-8 -*-
#
# Cipher/NOPAD_RSA.py :NOPAD
#
__all__ = ['new', 'NOPAD_Cipher']
from Crypto import Random
from Crypto.Util.number import bytes_to_long, long_to_bytes
class NOPAD_Cipher:
"""This cipher can perform NOPAD RSA encryption or decryption.
Do not instantiate directly. Use :func:`Crypto.Cipher.NOPAD_RSA.new` instead."""
def __init__(self, key):
"""Initialize this nopad cipher object.
:Parameters:
key : an RSA key object
If a private half is given, both encryption and decryption are possible.
If a public half is given, only encryption is possible.
"""
self._key = key
def can_encrypt(self):
"""Return True if this cipher object can be used for encryption."""