• python-rsa加密解密、签名验签


    1、前言

    公钥加密,私钥解密。---用于加解密
    私钥签名,公钥验签。---用于签名

    比如加密情景:
    如果甲想给乙发一个安全的保密的数据,那么应该甲乙各自有一个私钥,
    甲先用乙的公钥加密这段数据(已之外人无法获得,私钥解密),再用自己的私钥加密这段加密后的数据(甲之外无法篡改,私钥签名)
    最后再发给乙,这样确保了内容即不会被读取,也不会被篡改

    
    
    # publicKey = publicKey.save_pkcs1()
    # privateKey =privateKey.save_pkcs1()
    # publicKey = rsa.PublicKey.load_pkcs1(publicKey)
    # privateKey = rsa.PrivateKey.load_pkcs1(privateKey)
    # #除去换行和首尾
    # privateKey=str(privateKey).replace('\n','').replace("b'-----BEGIN RSA PRIVATE KEY-----",'').replace("-----END RSA PRIVATE KEY-----'",'').replace(' ','')


    #
    生成RSA公钥和秘钥 # (publicKey1,privateKey1) = rsa.newkeys(1024) # (publicKey2,privateKey2) = rsa.newkeys(1024) def rsa_encrypt(content): # 公钥加密 content = content.encode('utf-8') content = rsa.encrypt(content, publicKey1) return content def rsa_decrypt(content): # 私钥解密 result = rsa.decrypt(content, privateKey1) result = result.decode('utf-8') return result def rsa_sign(content): # 私钥签名 content = content#.encode('utf-8') signature = rsa.sign(content, privateKey2, 'SHA-1') # 签名 return signature def rsa_verify(content,signature): # 公钥验签 content = content#.encode('utf-8') result = rsa.verify(content, signature, publicKey2) # 验签,失败抛出异常 print(result) return result if __name__ == '__main__': message = '重要信息不可泄露' yi = rsa_encrypt(message) #加密 print(yi) jia = rsa_sign(yi) #签名 print(jia) if rsa_verify(yi,jia): #验签 res = rsa_decrypt(yi) #解密 print('解密后:'+res)
  • 相关阅读:
    Django Model数据访问Making queries
    Tomcat 7源码学习笔记 -5 web app自动reload
    tomcat启动提示server.xml的context节点中不支持source属性警告的解决方法
    javaweb学习总结(三十九)——数据库连接池
    共享文件系统
    高可用+负载均衡 方案
    Java对象克隆(Clone)及Cloneable接口、Serializable接口的深入探讨
    Java对象序列化给分布式计算带来的方便
    JAVABEAN必须继承序列化借口的作用
    keep-alive pipeline区别
  • 原文地址:https://www.cnblogs.com/shuzf/p/12909101.html
Copyright © 2020-2023  润新知