Python 实现RSA SHA-1签名
来源:互联网 发布:手机群呼软件 编辑:程序博客网 时间:2024/05/21 09:09
今天对接业务接口,传递的参数需要用RSA签名,三方只给了java的RSA签名Demo;但我们这边后端采用python开发,因此需要用Python来实现RSA签名。
Java版Demo
import java.security.KeyFactory;import java.security.PrivateKey;import java.security.spec.PKCS8EncodedKeySpec;public class Sign { public static String sign(String content, String privateKey) { try { PKCS8EncodedKeySpec priPKCS8 = new PKCS8EncodedKeySpec(Base64 .decode(privateKey)); KeyFactory keyf = KeyFactory.getInstance("RSA"); PrivateKey priKey = keyf.generatePrivate(priPKCS8); java.security.Signature signature = java.security.Signature .getInstance("SHA1WithRSA");//签名算法SHA1WithRSA signature.initSign(priKey); signature.update(content.getBytes("UTF-8")); byte[] signed = signature.sign(); return Base64.encode(signed); } catch (Exception e) { e.printStackTrace(); } return null; }}
Python相关RSA加密库: rsa, Crypto, M2Crypto;下面分别调研了使用rsa和Crypto实现RSA签名(代码中,pem就是RSA签名需要的私钥)。
利用rsa库
import base64import rsadef sign(self, data): pri_key = rsa.PrivateKey.load_pkcs1(self.pem) signature = rsa.sign(str(data), priv_key=pri_key, hash='SHA-1') return base64.b64encode(signature)
利用Crypto库
import base64from Crypto.Signature import PKCS1_v1_5from Crypto.PublicKey import RSAfrom Crypto.Hash import SHAdef sign(self, data): private_key = RSA.importKey(self.pem) cipher = PKCS1_v1_5.new(private_key) h = SHA.new(data) signature = cipher.sign(h) return base64.b64encode(signature)
相关内容
openssl生成PKCS#1格式
openssl genrsa -out rsa_private_key.pem 1024openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
openssl生成PKCS#8格式
openssl pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt
python方式生成PKCS#1格式
import rsa(pubkey, privkey) = rsa.newkeys(1024)privkey.save_pkcs1('PEM')pubkey.save_pkcs1('PEM')
阅读全文
0 0
- Python 实现RSA SHA-1签名
- sha-1 签名的java实现
- RSA加密与SHA签名用法详解
- python RSA签名
- Python的RSA签名
- JS RSA 签名实现
- 各种加密签名算法MD5/SHA, DES,RSA,DSA,ECC
- python RSA签名和解签
- Python RSA, ECDSA384签名/验证
- Java实现SHA-256签名加密
- python实现aes加密解密,RSA签名和验签,RSA加密解密,并调用接口
- python实现aes加密解密,RSA签名和验签,RSA加密解密,并调用接口
- java和python的SHA-1形式RSA加密方式代码互通
- RSA的签名认证实现
- SHA-1 加密算法实现
- 一篇搞定RSA加密与SHA签名|与Java完全同步
- Python下RSA加密/解密, 签名/
- openssl rsa+sha
- 接口测试 使用 Jmeter 做 Web 接口测试
- Android编译FFmpeg类库
- struts2框架
- pandas数据汇总记录
- TP实现找父亲节点的树
- Python 实现RSA SHA-1签名
- navcat连接数据库Mysql使用密码问题
- 计算1/1-1/2+1/3-1/4+1/5 …… + 1/99
- Java 虚拟机垃圾回收机制
- ubuntu14.04安装CUDA8.0
- 简单i2c设备驱动实例
- 最近点对
- android 通过uri获取bitmap图片并压缩
- Java学习3:面向对象