日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Java實現ECDSA簽名算法

瀏覽:50日期:2022-08-22 18:40:09

ECDSA簽名算法

package com.albedo.security;/** * DSA 加解密實現 */public class ECDSAUtils extends Base { //字符編碼 public static final String ALGORITHM = 'EC'; public static final String SIGN_ALGORITHM = 'SHA1withECDSA'; /** * ECDSA 驗簽 * * @param sign 加密簽名 * @param str 加密字符串 * @param publicKey 公鑰 * @return 密文 * @throws Exception 加密過程中的異常信息 */ public static boolean verify(String sign, String str, String publicKey) throws Exception { return verify(sign, str, publicKey, ALGORITHM, SIGN_ALGORITHM); } /** * ECDSA 簽名 * * @param str 加密字符串 * @param privateKey 私鑰 * @return 銘文 * @throws Exception 解密過程中的異常信息 */ public static String sign(String str, String privateKey) throws Exception { return sign(str, privateKey, ALGORITHM, SIGN_ALGORITHM); } public static void main(String[] args) throws Exception { String publicKey = getPublicKey(ALGORITHM, 512); String privateKey = getPrivateKey(ALGORITHM, 512); String message = '我要測試DSA'; String sign = sign(message, privateKey); System.out.println(verify(sign, message, publicKey)); }}

基礎代碼

package com.albedo.security;import com.albedo.num.ByteUtils;import java.security.KeyFactory;import java.security.KeyPair;import java.security.KeyPairGenerator;import java.security.PrivateKey;import java.security.PublicKey;import java.security.Signature;import java.security.spec.PKCS8EncodedKeySpec;import java.security.spec.X509EncodedKeySpec;import java.util.Objects;class Base { static KeyPair keyPair; /** * 生成密鑰實際方法,可以使用多種方式 * 一篇文檔提供一下多種方式 * { 'DSA', 'SHA1withDSA', '1024' }, { 'DSA', 'SHA256withDSA', '1024' }, * { 'DSA', 'SHA256withDSA', '2048' }, { 'RSA', 'SHA256withRSA', '1024' }, * { 'RSA', 'SHA256withRSA', '2048' }, { 'RSA', 'SHA256withRSA', '3192' }, * { 'RSA', 'SHA512withRSA', '1024' }, { 'RSA', 'SHA512withRSA', '2048' }, * { 'RSA', 'SHA512withRSA', '3192' }, { 'RSA', 'MD5withRSA', '1024' }, * { 'RSA', 'MD5withRSA', '2048' }, * { 'RSA', 'MD5withRSA', '3192' }, { 'EC', 'SHA1withECDSA', '128' }, * { 'EC', 'SHA1withECDSA', '256' }, * { 'EC', 'SHA256withECDSA', '128' }, { 'EC', 'SHA256withECDSA', '256' }, * { 'EC', 'SHA512withECDSA', '128' }, { 'EC', 'SHA512withECDSA', '256' }, * * @param algorithm * @param bit * @return * @throws Exception */ protected static KeyPair createKey(String algorithm, int bit) throws Exception { KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance(algorithm); keyPairGenerator.initialize(bit); KeyPair keyPair = keyPairGenerator.generateKeyPair(); return keyPair; } /** * 獲取公鑰 * * @return * @throws Exception */ public static String getPublicKey(String algorithm,int bit) throws Exception { if (Objects.isNull(keyPair)) { keyPair = createKey(algorithm,bit); } return ByteUtils.byteArr2HexStr(keyPair.getPublic().getEncoded()); } /** * 獲取私鑰 * * @return * @throws Exception */ public static String getPrivateKey(String algorithm,int bit) throws Exception { if (Objects.isNull(keyPair)) { keyPair = createKey(algorithm,bit); } return ByteUtils.byteArr2HexStr(keyPair.getPrivate().getEncoded()); } /** * 非對稱加密簽名 * @param str * @param privateKey * @param algorithm * @param signAlgorithm * @return * @throws Exception */ public static String sign(String str, String privateKey, String algorithm, String signAlgorithm) throws Exception { PKCS8EncodedKeySpec pkcs8EncodedKeySpec = new PKCS8EncodedKeySpec(ByteUtils.hexstr2ByteArr(privateKey)); KeyFactory keyFactory = KeyFactory.getInstance(algorithm); PrivateKey dsaPrivateKey = keyFactory.generatePrivate(pkcs8EncodedKeySpec); Signature signature = Signature.getInstance(signAlgorithm); signature.initSign(dsaPrivateKey); signature.update(str.getBytes()); return ByteUtils.byteArr2HexStr(signature.sign()); } /** * 非對稱加密驗證 * @param sign * @param str * @param publicKey * @param algorithm * @param signAlgorithm * @return * @throws Exception */ public static boolean verify(String sign, String str, String publicKey,String algorithm,String signAlgorithm) throws Exception { //base64編碼的公鑰 X509EncodedKeySpec x509EncodedKeySpec = new X509EncodedKeySpec(ByteUtils.hexstr2ByteArr(publicKey)); KeyFactory keyFactory = KeyFactory.getInstance(algorithm); PublicKey dsaPublicKey = keyFactory.generatePublic(x509EncodedKeySpec); Signature signature = Signature.getInstance(signAlgorithm); signature.initVerify(dsaPublicKey); signature.update(str.getBytes()); return signature.verify(ByteUtils.hexstr2ByteArr(sign)); }}

以上就是Java實現ECDSA簽名算法的詳細內容,更多關于Java ECDSA簽名算法的資料請關注好吧啦網其它相關文章!

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲精品免费观看| 亚洲综合不卡| 国产传媒在线| 久久久久伊人| 福利片在线一区二区| 亚洲午夜黄色| 欧美日韩国产一区精品一区| 久久国产亚洲| 日韩中文字幕区一区有砖一区| 中文一区一区三区免费在线观 | 电影亚洲精品噜噜在线观看| 99pao成人国产永久免费视频 | 国产精品亚洲欧美| 不卡专区在线| 亚洲综合电影| 日韩在线观看中文字幕| 久久99精品久久久久久园产越南| 日韩1区在线| 不卡在线一区二区| 国产精品99久久免费| 九九99久久精品在免费线bt| 国产精品精品| 九九在线精品| 日韩亚洲精品在线观看| 国产精品第十页| 另类小说一区二区三区| 日韩视频精品在线观看| 视频一区二区三区在线| 国产精品一区二区三区美女| 日韩欧美一区二区三区在线视频| 在线午夜精品| 国产精久久久| 黄色国产精品| 国产精品sss在线观看av| 婷婷精品视频| 国产乱子精品一区二区在线观看 | 久久激情五月婷婷| 丝袜av一区| 久久亚洲美女| 国产精品啊v在线| 亚洲精品一区二区妖精| 国产探花在线精品| 99久久激情| 国产精品欧美一区二区三区不卡| 午夜日韩在线| 精品一区二区三区亚洲| 午夜在线视频观看日韩17c| 精品三级在线| 亚洲欧美网站在线观看| 国产一区二区三区四区五区 | 色88888久久久久久影院| 亚洲综合图色| 婷婷激情一区| 国产亚洲电影| 久久av一区二区三区| 国语对白精品一区二区| 久久午夜视频| 亚洲黄色中文字幕| 91精品尤物| 日韩在线a电影| 国产精品sm| 亚洲香蕉久久| 婷婷综合六月| 国产精品激情| 亚洲乱码一区| 99久久久久| 欧美国产小视频| 国产精品nxnn| 国产日韩中文在线中文字幕| 鲁大师成人一区二区三区| 日韩三区免费| 成人在线视频中文字幕| 69堂精品视频在线播放| 男人的天堂久久精品| 激情欧美国产欧美| 秋霞国产精品| 国产999精品在线观看| 亚洲精品激情| 亚洲一区网站| 日韩一区二区免费看| 伊人精品一区| 成人在线网站| 91精品国产乱码久久久久久久 | 国产农村妇女精品一二区| 色爱av综合网| 欧美成a人国产精品高清乱码在线观看片在线观看久 | 日韩成人亚洲| 久久久久久自在自线| 久久精品国产久精国产| 国产伦理一区| 美女视频网站久久| 久久精品九色| 精品99在线| 日本精品不卡| 在线日韩av| 成人av二区| 国产精品毛片一区二区三区| 亚洲欧洲一区二区天堂久久| 99国产精品视频免费观看一公开 | 最近高清中文在线字幕在线观看1| 欧美激情91| 精品国产亚洲一区二区三区大结局| av亚洲在线观看| 巨乳诱惑日韩免费av| 亚洲人妖在线| 国产精品2区| 国产 日韩 欧美 综合 一区| 欧美男人天堂| 日本成人在线不卡视频| 日韩精品一区二区三区中文在线| 日韩高清一区在线| 国产精品theporn| 日韩欧美精品一区| 久久久精品午夜少妇| 91精品一区二区三区综合| 亚洲福利国产| 蜜芽一区二区三区| 国产精品一级| 超碰超碰人人人人精品| 亚洲欧美日韩高清在线| 亚洲v天堂v手机在线| 国产精品一区三区在线观看| 国产aa精品| 欧美在线亚洲| 亚洲狼人精品一区二区三区| 日韩成人av影视| 精品一区二区三区中文字幕在线| 午夜影院一区| 久久亚洲国产精品一区二区| 国产精品主播| 欧美不卡高清一区二区三区| 免费一级片91| 久久99久久久精品欧美| 99热精品久久| 日本成人精品| 最近高清中文在线字幕在线观看1| 亚洲国产成人精品女人| 国产日韩欧美在线播放不卡| 国产96在线亚洲| 国产免费成人| 久久不卡日韩美女| 午夜国产欧美理论在线播放| 国产伦精品一区二区三区千人斩| 韩国精品主播一区二区在线观看| 亚洲欧洲一区二区天堂久久| 国产精品hd| 国产精品日韩欧美一区| 国产精品**亚洲精品| 欧美+日本+国产+在线a∨观看| 亚洲精品美女91| 日韩精品dvd| 日韩国产在线观看| 久久天堂成人| 国产精品亚洲片在线播放| 1024精品一区二区三区| 日韩精品电影一区亚洲| 久久中文字幕二区| 国产毛片一区二区三区| 伊人久久亚洲影院| 精品国产鲁一鲁****| 综合国产在线| 亚洲v在线看| 久久精品福利| 日本在线一区二区三区| 国产99亚洲| 精品一区av| 日韩在线网址| 欧美日韩第一| 97国产精品| 日本不卡一区二区| 久久在线电影| 精品网站aaa| 欧美日韩91| 首页欧美精品中文字幕| 丝袜美腿诱惑一区二区三区| 国产精品sm| 国产日韩欧美| 视频一区二区不卡| 欧美在线观看视频一区| 成人台湾亚洲精品一区二区| 日韩精品三区四区| 国产模特精品视频久久久久| 黑森林国产精品av| 国产精品久久久久久久久久妞妞 | 欧美日韩高清| 欧美精品高清| 日韩.com| 精品亚洲二区| 麻豆国产一区| 久久精品72免费观看| 中文字幕中文字幕精品| 99久久夜色精品国产亚洲狼 | 久久高清一区| 欧美日韩国产在线观看网站 | 在线一区免费观看| 激情久久五月| 亚洲欧美一区在线| 欧美日韩在线观看视频小说| 久久精选视频| 欧美亚洲在线日韩|