java生成sm2/hutool生成公鑰私鑰代碼示例
首先引入maven依賴
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15to18</artifactId>
<version>1.69</version>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.16</version>
</dependency>然后運(yùn)行以下代碼
KeyPair pair = SecureUtil.generateKeyPair("SM2");
byte[] privateKey = pair.getPrivate().getEncoded();
byte[] publicKey = pair.getPublic().getEncoded();
//私鑰
String privateKeyStr=Base64.getEncoder().encodeToString(privateKey);
//公鑰
String publicKeyStr=Base64.getEncoder().encodeToString(publicKey);就可以得到私鑰和公鑰
公鑰提供給通訊方驗(yàn)簽
下面是簽名的代碼
String content = "我是Hanley."; final SM2 sm2 = SmUtil.sm2(privateKeyStr,null); String sign = sm2.signHex(HexUtil.encodeHexStr(content));
驗(yàn)簽代碼
final SM2 sm2 = SmUtil.sm2(null,publicKeyStr); // true boolean verify = sm2.verifyHex(HexUtil.encodeHexStr(content), sign);
加密
// 公鑰加密,私鑰解密 SM2 sm2 = SmUtil.sm2(null, publicKey); String encryptStr = sm2.encryptBcd(text, KeyType.PublicKey);
解密
// 公鑰加密,私鑰解密 SM2 sm2 = SmUtil.sm2(privateKeyStr, null); String decryptStr = StrUtil.utf8Str(sm2.decryptFromBcd(encryptStr, KeyType.PrivateKey));
好了,以上就是sm2util的使用介紹了,hutool還有很多強(qiáng)大的工具類,方便程序員們的調(diào)用
總結(jié)
到此這篇關(guān)于java生成sm2/hutool生成公鑰私鑰的文章就介紹到這了,更多相關(guān)java hutool生成公鑰私鑰內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java hibernate使用注解來定義聯(lián)合主鍵
這篇文章主要介紹了java hibernate使用注解來定義聯(lián)合主鍵的相關(guān)資料,需要的朋友可以參考下2017-01-01
Java 反射調(diào)用靜態(tài)方法的簡單實(shí)例
下面小編就為大家?guī)硪黄狫ava 反射調(diào)用靜態(tài)方法的簡單實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-06-06
SpringBoot項(xiàng)目中application.yml和bootstrap.yml文件的區(qū)別及說明
`application.yml`和`bootstrap.yml`都是Spring Boot項(xiàng)目中的配置文件,但它們在加載時(shí)機(jī)、用途、優(yōu)先級、配置來源、適用場景和是否必須存在等方面存在區(qū)別2025-03-03
SpringBoot集成Mybatis的實(shí)現(xiàn)步驟
這篇文章主要介紹了SpringBoot集成Mybatis的實(shí)現(xiàn)步驟,本文通過SpringBoot +MyBatis 實(shí)現(xiàn)對數(shù)據(jù)庫學(xué)生表的查詢操作,需要的朋友可以參考下2020-12-12
解決java idea新建子目錄時(shí)命名不是樹形結(jié)構(gòu)的問題
這篇文章主要介紹了解決java idea新建子目錄時(shí)命名不是樹形結(jié)構(gòu)的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08
Gradle配置國內(nèi)鏡像加速指南(最全最詳細(xì))
在使用 Gradle 進(jìn)行 Java、Android 或其他 JVM 項(xiàng)目開發(fā)時(shí),最令人頭疼的問題之一就是依賴下載速度慢,所以本文將提供最詳細(xì)最全面的 Gradle 配置國內(nèi)鏡像的指南,希望對大家有所幫助2025-08-08

