rsa與base64公鑰私 -- 安全

  • 引用
import rsa
import base64
  • 生成公鑰私鑰
length = 1024
rsa_length = int(length / 8)
enable_length = rsa_length - 11

pub_key_obj, priv_key_obj = rsa.newkeys(length)

pub_key_str = pub_key_obj.save_pkcs1()
pub_key_code = base64.standard_b64encode(pub_key_str)

priv_key_str = priv_key_obj.save_pkcs1()
priv_key_code = base64.standard_b64encode(priv_key_str)

print(pub_key_code)
print(priv_key_code)
  • 加密
def encrypt(value):
    key_str = base64.standard_b64decode(pub_key_code)
    pk = rsa.PublicKey.load_pkcs1(key_str)
    
    val_list = []
    for i in range(0, len(value), enable_length):
        v = value[i:i + enable_length]
        val = rsa.encrypt(v.encode('utf-8'), pk)
        val_list.append(val)
    return b''.join(val_list)
  • 解密
def decrypt(value):
    key_str = base64.standard_b64decode(priv_key_code)
    pk = rsa.PrivateKey.load_pkcs1(key_str)
    
    val_list = []
    for i in range(0, len(value), rsa_length):
        v = value[i:i + rsa_length]
        val = rsa.decrypt(v, pk)
        val_list.append(val)
    
    return b''.join(val_list)


ret = encrypt('abcdefg' * 100)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章