日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

java pkcs8_java – 如何在python中创建PKCS8 RSA签名

發布時間:2023/12/31 python 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java pkcs8_java – 如何在python中创建PKCS8 RSA签名 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我有pkcs8_rsa_private_key文件,它由openssl從rsa_private_key.pem文件生成.

我需要通過python中的私鑰進行簽名,使用下面的java代碼創建相同的簽名.

public static final String SIGN_ALGORITHMS = "SHA1WithRSA";

public static String sign(String content, String privateKey) {

String charset = "utf-8";

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(SIGN_ALGORITHMS);

signature.initSign(priKey);

signature.update(content.getBytes(charset));

byte[] signed = signature.sign();

return Base64.encode(signed);

} catch (Exception e) {

e.printStackTrace();

}

return null;

}

解決方法:

PKCS#8定義了一種編碼和傳輸密鑰的方法,它并不特定于OpenSSL; PKCS#1定義了一種使用RSA密鑰的方法(無論它是如何加載到您的應用程序中,使用PKCS#8)來執行和驗證數據上的數字簽名.

你擁有的這段代碼有三件事:

>它將Base64解碼為PKCS#8

>它將PKCS#8解碼為內存中的實際密鑰(請注意,您可能需要在此處提供密碼)

>它使用SHA-1使用所述密鑰執行PKCS#1 v1.5簽名

>它對Base64中的簽名進行編碼

標簽:java,python,encryption,openssl,rsa

來源: https://codeday.me/bug/20191005/1856644.html

總結

以上是生活随笔為你收集整理的java pkcs8_java – 如何在python中创建PKCS8 RSA签名的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。