java生成sm2/hutool生成公鑰私鑰代碼示例
首先引入maven依賴(lài)
<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)大的工具類(lèi),方便程序員們的調(diào)用
總結(jié)
到此這篇關(guān)于java生成sm2/hutool生成公鑰私鑰的文章就介紹到這了,更多相關(guān)java hutool生成公鑰私鑰內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
selenium高效應(yīng)對(duì)Web頁(yè)面元素刷新的實(shí)例講解
今天小編就為大家分享一篇selenium高效應(yīng)對(duì)Web頁(yè)面元素刷新的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05Idea中如何查看SpringSecurity各Filter信息
這篇文章主要介紹了Idea中如何查看SpringSecurity各Filter信息,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01如何解決Nacos服務(wù)下線(xiàn)報(bào)錯(cuò)問(wèn)題
這篇文章主要介紹了如何解決Nacos服務(wù)下線(xiàn)報(bào)錯(cuò)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07java jackson 將對(duì)象轉(zhuǎn)json時(shí),忽略子對(duì)象的某個(gè)屬性操作
這篇文章主要介紹了java jackson 將對(duì)象轉(zhuǎn)json時(shí),忽略子對(duì)象的某個(gè)屬性操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-10-10Druid監(jiān)控分布式實(shí)現(xiàn)過(guò)程解析
這篇文章主要介紹了Druid監(jiān)控分布式實(shí)現(xiàn)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11簡(jiǎn)單注解實(shí)現(xiàn)集群同步鎖(spring+redis+注解)
本文主要介紹了簡(jiǎn)單注解實(shí)現(xiàn)集群同步鎖的步驟與方法。具有一定的參考價(jià)值,下面跟著小編一起來(lái)看下吧2017-01-01解決SpringBoot引用別的模塊無(wú)法注入的問(wèn)題
這篇文章主要介紹了解決SpringBoot引用別的模塊無(wú)法注入的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02Spring Boot Event Bus用法小結(jié)
Spring Boot Event Bus是Spring框架中事件驅(qū)動(dòng)編程的一部分,本文主要介紹了Spring Boot Event Bus用法小結(jié),感興趣的可以了解一下2023-09-09