国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java RSA加解密-非對稱加密-公鑰私鑰加解密(使用hutool工具)

這篇具有很好參考價值的文章主要介紹了Java RSA加解密-非對稱加密-公鑰私鑰加解密(使用hutool工具)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

之前一篇帖子(https://blog.csdn.net/u014137486/article/details/136413532)展示了使用原生Java進行RSA加解密,本文介紹下使用當(dāng)下流行的Hutool工具進行RSA加解密的用法。

目錄

一、在Linux環(huán)境下生成公鑰、私鑰文件

二、將生成的公私鑰文件導(dǎo)入項目中并移除pem文件的前后公私鑰標(biāo)記

三、pom文件中引入hutool依賴

四、使用hutool API編碼


一、在Linux環(huán)境下生成公鑰、私鑰文件

生成公私鑰文件此處不再描述,請參考筆者的另一篇帖子(https://blog.csdn.net/u014137486/article/details/136413532)

二、將生成的公私鑰文件導(dǎo)入項目中并移除pem文件的前后公私鑰標(biāo)記

比如導(dǎo)入private_key.pem, public_key.pem到項目classpath的keys目錄中,

hutool rsa加解密,java,RSA加解密,hutool RSA加解密,Java公私鑰加解密,Java非對稱加密解密

并移除pem文件中的以下內(nèi)容,只保留密鑰內(nèi)容即可,

-----BEGIN PRIVATE KEY-----
-----END PRIVATE KEY-----
-----BEGIN PUBLIC KEY-----
-----END PUBLIC KEY-----

三、pom文件中引入hutool依賴

<dependency>
	<groupId>cn.hutool</groupId>
	<artifactId>hutool-all</artifactId>
	<version>5.8.26</version>
</dependency>

四、使用hutool API編碼

以下為公鑰加密、私鑰解密的完整示例代碼,

package com.frank.project.test.rsa;

import cn.hutool.core.io.file.FileReader;
import cn.hutool.crypto.asymmetric.KeyType;
import cn.hutool.crypto.asymmetric.RSA;

public class RSAUtilUseHutool {

	public static void main(String[] args) throws Exception {
		// 在classpath下的公私鑰文件
        String pubKeyFilePathInClasspath = "keys/public_key.pem";
        String priKeyFilePathInClasspath = "keys/private_key.pem";
        // 要加密的文本
        String text = "和發(fā)票是否激活皮膚設(shè)計大";
        
        long startTime = System.currentTimeMillis();
        // 獲取公鑰并進行rsa加密
        String encryptedString = encrypt(text, getPublicKey(pubKeyFilePathInClasspath));
        // 獲取私鑰并進行rsa解密
        String decryptedString = decrypt(encryptedString, getPrivateKey(priKeyFilePathInClasspath));
        
        System.out.println("hutool rsa cost:" + (System.currentTimeMillis() - startTime) + "ms");
        
        System.out.println("Encrypted String - " + encryptedString);
        System.out.println("Decrypted String - " + decryptedString);
	}
	
	/**
	 * 使用公鑰加密
	 * @param text 待使用rsa加密的明文
	 * @param publicKey 文本格式的公鑰內(nèi)容(不包含-----BEGIN PUBLIC KEY-----,-----END PUBLIC KEY-----)
	 * @return
	 */
	private static String encrypt(String text, String publicKey){
		return new RSA(null, publicKey).encryptHex(text, KeyType.PublicKey);
	}
	
	/**
	 * 使用私鑰解密
	 * @param encryptedString 使用rsa加密的密文串
	 * @param privateKey 文本格式的私鑰內(nèi)容(不包含-----BEGIN PRIVATE KEY-----,-----END PRIVATE KEY-----)
	 * @return
	 */
	private static String decrypt(String encryptedString, String privateKey){
		return new RSA(privateKey, null).decryptStr(encryptedString, KeyType.PrivateKey);
	}
	
	/**
	 * 從公鑰文件中讀取公鑰數(shù)據(jù)
	 * 
	 * @param pubKeyFilePathInClasspath classpath下的公鑰文件路徑
	 * @return
	 * @throws Exception
	 */
	private static String getPublicKey(String pubKeyFilePathInClasspath)
			throws Exception {
		return new FileReader(getAbsolutePath(pubKeyFilePathInClasspath))
				.readString();

	}

	/**
	 * 從私鑰文件中讀取私鑰數(shù)據(jù)
	 * 
	 * @param priKeyFilePathInClasspath classpath下的私鑰文件路徑
	 * @return
	 * @throws Exception
	 */
	private static String getPrivateKey(String priKeyFilePathInClasspath)
			throws Exception {
		return new FileReader(getAbsolutePath(priKeyFilePathInClasspath))
				.readString();
	}

	/**
	 * 獲取classpath下指定文件的絕對路徑
	 * @param filePathInClasspath classpath下文件路徑
	 * @return
	 */
	private static String getAbsolutePath(String filePathInClasspath) {
		return RSAUtilUseHutool.class.getClassLoader()
				.getResource(filePathInClasspath).getPath();
	}

}

可原生Java API一樣,hutool同樣支持使用私鑰加密、公鑰解密,只需要傳入的key不同即可,文章來源地址http://www.zghlxwxcb.cn/news/detail-856017.html

// 使用私鑰加密,使用公鑰解密
encryptedString = encrypt(text, getPrivateKey(pubKeyFilePathInClasspath));
decryptedString = decrypt(encryptedString, getPublicKey(priKeyFilePathInClasspath));

到了這里,關(guān)于Java RSA加解密-非對稱加密-公鑰私鑰加解密(使用hutool工具)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • C# .NET CORE .NET6 RSA 公鑰加密 私鑰解密

    環(huán)境說明: .NET CORE 版本:.NET 6 。 ? .NET CORE 對于RSA的支持: 1. .NET 6 中內(nèi)置了對 PKCS1,PKCS8 2種私鑰格式的支持。 2. 如果你要部署在Linux,docker ,k8s 中;一定要用 “RSA”這個類,不能是 .NET FRAMEWORK 的?RSACryptoServiceProvider。 3. .NET 中默認(rèn)加密算法為“RSA/ECB/PKCS1Padding” ,要和JAVA互通

    2024年02月08日
    瀏覽(95)
  • 國密sm2公鑰加密 私鑰解密java代碼實現(xiàn)

    目錄 一、引入jar包 二、生成秘鑰對,加解密工具類

    2024年02月11日
    瀏覽(93)
  • RSA加密,公鑰、私鑰的生成,前端使用公鑰加密,JSEncrypt返回值為false的原因以及解決方法,XML轉(zhuǎn)換Pkcs1、8

    RSA加密,公鑰、私鑰的生成,前端使用公鑰加密,JSEncrypt返回值為false的原因以及解決方法,XML轉(zhuǎn)換Pkcs1、8

    非對稱加密算法,兩個且不同的Key,一個公開,一個私密,公開加密,私密解密。 特點: 原文短,加密后密文長 生成相對較慢 安全性超強 我們使用.net進行生成公鑰、私鑰。 使用RSA.ToXmlString(Boolean) 方法生成公鑰以及私鑰,方法中接收一個參數(shù), true ?表示同時包含 RSA 公鑰

    2024年01月21日
    瀏覽(99)
  • 使用非對稱加密(RSA) 實現(xiàn)前端加密后端解密

    使用非對稱加密(RSA) 實現(xiàn)前端加密后端解密

    數(shù)據(jù)加密方式有: 單向加密、對稱加密、非對稱加密、加密鹽、散列函數(shù)、數(shù)字簽名。 1、單向加密 單向加密通過對數(shù)據(jù)進行摘要計算生成密文,密文不可逆推還原。只能加密,不能解密,常用于提取數(shù)據(jù)的指紋信息以此來驗證數(shù)據(jù)的完整性。但是會引發(fā)雪崩效應(yīng)(雪崩效應(yīng)

    2024年02月08日
    瀏覽(95)
  • RSA 公私鑰加解密Java實現(xiàn)

    RSA 公私鑰加解密Java實現(xiàn)

    1.簡單快速集成,飲用hutool工具包實現(xiàn) 1)引入hutool包 2) 制作好自己的rsa公私鑰文件,通過openssl實現(xiàn)即可,直接放到resources下面? 3)讀取rsa文件,進行加解密實現(xiàn),公鑰加密,私鑰解密,注意點都在里面注釋了。 2.不借助工具,直接引用java?security包實現(xiàn)功能 1)公私鑰依然

    2024年02月10日
    瀏覽(90)
  • 私鑰和公鑰到底是誰來加密、誰來解密?

    私鑰和公鑰到底是誰來加密、誰來解密?

    1.? 應(yīng)用場景 場景1(第一種用法):用于信息加解密,此時使用公鑰加密,私鑰解密。 場景2(第二種用法):用于數(shù)字簽名,此時使用私鑰簽名,公鑰驗簽。 有點混亂,不要去硬記,你只要這樣想即可: - 既然是加密,那肯定是不希望別人知道我的消息,所以只有我才能解

    2023年04月15日
    瀏覽(96)
  • 使用RSA生成公鑰和私鑰

    可以用keytool工具直接生成,需要openssl工具Binaries - OpenSSLWiki設(shè)置到環(huán)境變量里 生成的authkey放到gateway下,生成的auth.jks放到auth認(rèn)證服務(wù)下 網(wǎng)關(guān)結(jié)合鑒權(quán),需要配置如下配置文件???????????????? 認(rèn)證服務(wù)配置Bean 接口AuthToolController RSAUtil 依賴 訪問localhost:6080/generate/do

    2024年02月12日
    瀏覽(97)
  • RSA算法習(xí)題 (采用RSA算法,其中e=7,p=11,q=13,求出公鑰和私鑰,并求出明文85進行加密后的密文。)

    RSA算法習(xí)題 (采用RSA算法,其中e=7,p=11,q=13,求出公鑰和私鑰,并求出明文85進行加密后的密文。)

    1、采用RSA算法,其中e=7,p=11,q=13,求出公鑰和私鑰,并求出明文85進行加密后的密文。 2. 找出質(zhì)數(shù) P、Q P=11 Q=13 3. 計算公共模數(shù) N = P * Q = 143 4. 歐拉函數(shù) Φ(N) = (P-1)*(Q-1) = 10 *12 = 120 5. 計算公鑰E 1Eφ(N) 所以1E120 E的取值范圍{3,7,9,11,13,17,19,...,117,119} E的取值必須和φ(N)互質(zhì) 取

    2024年02月09日
    瀏覽(100)
  • 【openssl】RSA 生成公鑰私鑰 |通過私鑰獲取公鑰

    【openssl】RSA 生成公鑰私鑰 |通過私鑰獲取公鑰

    通過博客:Window系統(tǒng)如何編譯openssl?編譯出openssl.exe(位于apps文件夾下)。 現(xiàn)在需要使用它獲得公鑰私鑰、通過私鑰獲取公鑰 目錄 說明?。。?一.定位openssl.exe目錄 二、進入命令cmd 三、生成私鑰 四、已知的私鑰替換模板私鑰 五、通過私鑰生成公鑰 a.生成公鑰私鑰:跳過第四

    2024年02月04日
    瀏覽(98)
  • 若依ruoyi前端vue使用jsencrypt.js加密后端java進行RSA解密(前后端交互RSA加解密)

    目錄 1、前后端RSA加解密實現(xiàn)思路 2、前端 3、后端 按照約定來說公鑰一般用來加密,大家都可以獲取得到,私鑰用來解密,當(dāng)然你也可以混著用,以下示例是前端通過加密,后端解密. ?-----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ81AMIIBCgKCAQEA1+05vAf7m5NcLNLkRtsm gp+QdzcW6MVdayGTGBJG0v

    2024年02月06日
    瀏覽(105)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包