import rsa
(pubkey, prikey) = rsa.newkeys(1024)
plain = b"Hello world!"
cipher = rsa.encrypt(plain, pubkey)
print(len(cipher))
for data in cipher:
print("%02x " % data, end="")
print(" ")
outplain = rsa.decrypt(cipher, prikey)
print(outplain)
message = plain
signature = rsa.sign(message, prikey, "SHA-1")
try:
rsa.verify(message, signature, pubkey)
print("验签成功")
except:
print("验签失败!")
def pub_decode(message, pub_key):
from rsa import common, transform, core
keylength = common.byte_size(pub_key.n)
encrypted = transform.bytes2int(message)
decrypted = core.decrypt_int(encrypted, pub_key.e, pub_key.n)
clearsig = transform.int2bytes(decrypted, keylength)
return clearsig
def HashData(message):
import hashlib
m = hashlib.sha1()
m.update(message)
return m.digest()
print(len(signature))
out = pub_decode(signature, pubkey)
for data in out:
print("%02x " % data, end="")
print("")
for data in HashData(message):
print("%02x " % data, end="")
print("")