Skip to content

Commit

Permalink
更新rsa 支持分段加密
Browse files Browse the repository at this point in the history
更新rsa 支持分段加密
  • Loading branch information
yuanter authored Dec 11, 2022
1 parent fe9727a commit 797035d
Showing 1 changed file with 16 additions and 3 deletions.
19 changes: 16 additions & 3 deletions tools/rsa_encrypt.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,21 @@ def public_key(self, rsaExponent, rsaModulus=10001):
return pubkey

def encrypt(self, data, b64=False):
data = data.encode('utf-8')
length = len(data)
default_length = 117
pub_key = importKey(self.key)
cipher = PKCS1_v1_5.new(pub_key)
rsa_text = cipher.encrypt(data.encode("utf8"))
rsa_text = b64encode(rsa_text).decode() if b64 else rsa_text.hex()
return rsa_text
if length < default_length:
rsa_text = cipher.encrypt(data)
return b64encode(rsa_text).decode() if b64 else rsa_text.hex()
offset = 0
res = []
while length - offset > 0:
if length - offset > default_length:
res.append(cipher.encrypt(data[offset:offset + default_length]))
else:
res.append(cipher.encrypt(data[offset:]))
offset += default_length
byte_data = b''.join(res)
return b64encode(byte_data).decode() if b64 else byte_data.hex()

0 comments on commit 797035d

Please sign in to comment.