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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java RSA 加签验签【转】

發布時間:2023/12/1 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java RSA 加签验签【转】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

引用自:?http://blog.csdn.net/wangqiuyun/article/details/42143957/

?

java RSA 加簽驗簽

package com.testdemo.core.service.impl.alipay;import java.security.KeyFactory; import java.security.PrivateKey; import java.security.PublicKey; import java.security.spec.PKCS8EncodedKeySpec; import java.security.spec.X509EncodedKeySpec;import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder;/*** RSA簽名驗簽類 http://blog.csdn.net/wangqiuyun/article/details/42143957/*/ public class RSASignature {/*** 簽名算法*/public static final String SIGN_ALGORITHMS = "SHA1WithRSA";/*** RSA簽名* * @param content* 待簽名數據* @param privateKey* 商戶私鑰* @param encode* 字符集編碼* @return 簽名值*/public static String sign(String content, String privateKey, String encode) {try {PKCS8EncodedKeySpec priPKCS8 = new PKCS8EncodedKeySpec(new BASE64Decoder().decodeBuffer(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(encode));byte[] signed = signature.sign();return new BASE64Encoder().encode(signed);} catch (Exception e) {e.printStackTrace();}return null;}public static String sign(String content, String privateKey) {try {PKCS8EncodedKeySpec priPKCS8 = new PKCS8EncodedKeySpec(new BASE64Decoder().decodeBuffer(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());byte[] signed = signature.sign();return new BASE64Encoder().encode(signed);} catch (Exception e) {e.printStackTrace();}return null;}/*** RSA驗簽名檢查* * @param content* 待簽名數據* @param sign* 簽名值* @param publicKey* 分配給開發商公鑰* @param encode* 字符集編碼* @return 布爾值*/public static boolean doCheck(String content, String sign, String publicKey, String encode) {try {KeyFactory keyFactory = KeyFactory.getInstance("RSA");byte[] encodedKey = new BASE64Decoder().decodeBuffer(publicKey);PublicKey pubKey = keyFactory.generatePublic(new X509EncodedKeySpec(encodedKey));java.security.Signature signature = java.security.Signature.getInstance(SIGN_ALGORITHMS);signature.initVerify(pubKey);signature.update(content.getBytes(encode));boolean bverify = signature.verify(new BASE64Decoder().decodeBuffer(sign));return bverify;} catch (Exception e) {e.printStackTrace();}return false;}public static boolean doCheck(String content, String sign, String publicKey) {try {KeyFactory keyFactory = KeyFactory.getInstance("RSA");byte[] encodedKey = new BASE64Decoder().decodeBuffer(publicKey);PublicKey pubKey = keyFactory.generatePublic(new X509EncodedKeySpec(encodedKey));java.security.Signature signature = java.security.Signature.getInstance(SIGN_ALGORITHMS);signature.initVerify(pubKey);signature.update(content.getBytes());boolean bverify = signature.verify(new BASE64Decoder().decodeBuffer(sign));return bverify;} catch (Exception e) {e.printStackTrace();}return false;}}

?

轉載于:https://www.cnblogs.com/whatlonelytear/p/6739811.html

總結

以上是生活随笔為你收集整理的java RSA 加签验签【转】的全部內容,希望文章能夠幫你解決所遇到的問題。

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