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

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

這篇具有很好參考價值的文章主要介紹了RSA加密,公鑰、私鑰的生成,前端使用公鑰加密,JSEncrypt返回值為false的原因以及解決方法,XML轉(zhuǎn)換Pkcs1、8。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

RSA加密

非對稱加密算法,兩個且不同的Key,一個公開,一個私密,公開加密,私密解密。

特點:

原文短,加密后密文長

生成相對較慢

安全性超強

生成公鑰、私鑰

我們使用.net進行生成公鑰、私鑰。

使用RSA.ToXmlString(Boolean) 方法生成公鑰以及私鑰,方法中接收一個參數(shù),true?表示同時包含 RSA 公鑰和私鑰;false?表示僅包含公鑰,需要注意的是這里生成的是XML格式。

RSACryptoServiceProvider rSA = new();
string pubKey = rSA.ToXmlString(false);//公鑰
string priKey = rSA.ToXmlString(true);//私鑰

后端使用?

在后端加密解密需要引入RSACryptoServiceProvider 類,該類提供了對RSA算法的實現(xiàn)執(zhí)行非對稱加密和解密,同時,該類是不可被繼承的。

RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();

RSA加密

加密調(diào)用Encrypt(Byte[], Boolean)方法,第一個參數(shù)為需要加密的數(shù)據(jù),是一個byte[]格式,返回同樣為一個byte[]格式。

byte[] cipherbytes;
rsa.FromXmlString(pubKey);
cipherbytes = rsa.Encrypt(Encoding.UTF8.GetBytes(source), false);
var b = Convert.ToBase64String(cipherbytes);

RSA解密

解密調(diào)用Decrypt(Byte[], Boolean)方法,第一個參數(shù)為要解密的數(shù)據(jù),是一個byte[]格式,返回同樣為一個byte[]格式。

rsa.FromXmlString(priKey);
byte[] cipherbytex;
cipherbytex = rsa.Decrypt(Convert.FromBase64String(b), false);
var c = Encoding.UTF8.GetString(cipherbytex);

前端vue使用后端傳遞的公鑰加密

我這里使用的加密庫為JSEncrypt庫,安裝JSEncrypt庫。

npm install jsencrypt -D

?在頁面中對其引用。

import {JSEncrypt} from 'jsencrypt'

需要注意?:.net生成的公鑰與私鑰是XML格式,而前端JSEncrypt庫使用時需要Pkcs8格式,我們這里需要在后端處理一下公鑰再傳遞給前端,不然前端返回密文的時候為falae。

后端將XML格式轉(zhuǎn)換為Pkcs8格式

我們需要在程序包管理控制臺中安裝XC.RSAUtil包

NuGet\Install-Package XC.RSAUtil -Version 1.3.6

這個包包含了幾種轉(zhuǎn)換的格式:

XML轉(zhuǎn)Pkcs1

RsaKeyConvert.PrivateKeyXmlToPkcs1()私鑰

RsaKeyConvert.PublicKeyXmlToPem()公鑰

XML轉(zhuǎn)Pkcs8

RsaKeyConvert.PrivateKeyXmlToPkcs8()私鑰

RsaKeyConvert.PublicKeyXmlToPem()公鑰

Pkcs1轉(zhuǎn)XML?

RsaKeyConvert.PrivateKeyPkcs1ToXml()私鑰

RsaKeyConvert.PublicKeyPemToXml()公鑰

Pkcs8轉(zhuǎn)XML?

RsaKeyConvert.PrivateKeyPkcs8ToXml()私鑰

RsaKeyConvert.PublicKeyPemToXml()公鑰

我這里使用RsaKeyConvert.PublicKeyXmlToPem() ,再將轉(zhuǎn)換的值傳遞給前端,前端就能使用JSEncrypt進行RSA加密了。

string pubKey = rSA.ToXmlString(false);//公鑰
string priKey = rSA.ToXmlString(true);//私鑰
var keyList = RsaKeyConvert.PublicKeyXmlToPem(pubKey);//將xml格式轉(zhuǎn)換為Pkcs8
return new { keyList };

?前端加密

雖然我們前端是可以解密的,但是處于安全考慮,我們只用將公鑰傳遞給前端就可以了,私鑰是不傳遞的,私鑰是用于解碼使用公鑰加密的密文。

我們使用JSEncrypt庫主要使用其中的幾個方法:

setPublicKey('獲取的公鑰')設置公鑰

setPrivateKey('獲取的私鑰')設置私鑰

encrypt('加密內(nèi)容')加密

decrypt('解密內(nèi)容')解密

?這里我們使用公鑰對對456進行加密。

postFdd().then(res => {
	console.log(res)
	var encryptor = new JSEncrypt()
	encryptor.setPublicKey(res.keyList)
	var rsaPassWord = encryptor.encrypt('456')
	// encryptor.setPrivateKey(res.priKey) //設置秘鑰
	// var uncrypted = decrypt.decrypt(encryptor) //解密之前拿公鑰加密的內(nèi)容
	console.log(rsaPassWord)
})

我們打印出來可以看到?keyList是為Pkcs8格式,priKey是為XML格式,而下面那一段字段就是我們加密出來的密文。

jsencrypt 加密 false,c#,數(shù)據(jù)結構,vue.js

XML的格式以及Pkcs8格式

XML開頭為<RSAKeyValue><Modulus>

Pkcs8格式開頭為-----BEGIN PUBLIC KEY-----文章來源地址http://www.zghlxwxcb.cn/news/detail-811046.html

到了這里,關于RSA加密,公鑰、私鑰的生成,前端使用公鑰加密,JSEncrypt返回值為false的原因以及解決方法,XML轉(zhuǎn)換Pkcs1、8的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領支付寶紅包贊助服務器費用

相關文章

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

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

    之前一篇帖子(https://blog.csdn.net/u014137486/article/details/136413532)展示了使用原生Java進行RSA加解密,本文介紹下使用當下流行的Hutool工具進行RSA加解密的用法。 目錄 一、在Linux環(huán)境下生成公鑰、私鑰文件 二、將生成的公私鑰文件導入項目中并移除pem文件的前后公私鑰標記 三、po

    2024年04月23日
    瀏覽(376)
  • vue使用jsencrypt實現(xiàn)rsa前端加密

    vue使用jsencrypt實現(xiàn)rsa前端加密

    介紹 vue 完成 rsa 加密傳輸, jsencrypt 實現(xiàn)參數(shù)的前端加密 在 utils 文件夾中新建 jsencrypt.js 文件,內(nèi)容如下: 注意點:一般公鑰都是后端生成好的,之間給到前端,需要注意的需要讓后端把生成的公鑰放入 .txt 文件中。把 .txt 文件給前端,否則可能會出現(xiàn)無法使用的可能

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

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

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

    2024年02月04日
    瀏覽(98)
  • C#.NET Framework RSA 公鑰加密 私鑰解密 ver:20230609

    C#.NET Framework RSA 公鑰加密 私鑰解密 ver:20230609 ? 環(huán)境說明: .NET Framework 4.6 的控制臺程序?。 ? .NET Framework?對于RSA的支持: 1.?.NET Framework 內(nèi)置只支持XML格式的私鑰/公鑰。如果要用PKCS1,PKCS8格式的,要用到三方庫BouncyCastle。 2. .NET 中默認加密算法為“RSA/ECB/PKCS1Padding” ,要和

    2024年02月08日
    瀏覽(120)
  • 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 中默認加密算法為“RSA/ECB/PKCS1Padding” ,要和JAVA互通

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

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

    2024年02月06日
    瀏覽(105)
  • RSA加解密工具類(PKCS8公鑰加密,PKCS1私鑰解密)

    RSA加解密工具類(PKCS8公鑰加密,PKCS1私鑰解密)

    場景 :如果項目上生成的秘鑰,公鑰是PKCS8格式,私鑰卻是PKCS1格式。需要在這種場景加解密的話可以直接使用下面工具類。 特殊說明:私鑰解密的時候必須把私鑰源文件內(nèi)容整個傳入,不能刪除私鑰的文件頭和文件尾,并且不能刪除換行。

    2024年02月11日
    瀏覽(82)
  • 前端RSA加密方法jsencrypt以及encryptlong

    jsencrypt和encryptlong都是rsa加密,加密的對象一定要是字符串。 簡單數(shù)據(jù)用前者,如果加密的是對象并且數(shù)據(jù)還挺多的,比如含有token 用后者。 生成密鑰: RSA會產(chǎn)生兩個密鑰,其中公鑰公開用于加密,私鑰不公開用于解密。點擊生成公鑰密鑰 NPM安裝: jsencrypt NPM地址 encryptlo

    2024年02月15日
    瀏覽(23)
  • RSAUtil 前端 JavaScript JSEncrypt 實現(xiàn) RSA (長文本)加密解密

    文章歸檔:https://www.yuque.com/u27599042/coding_star/cl4dl599pdmtllw1 import JSEncrypt from ‘jsencrypt’ import {stringIsNull} from “@/utils/string_utils.js”:https://www.yuque.com/u27599042/coding_star/slncupw7un3ce7cb import {isNumber} from “@/utils/number_utils.js”:https://www.yuque.com/u27599042/coding_star/tuwmm3ghf5lgo4bw 注意: 此方

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

    RSA算法習題 (采用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)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領取紅包

二維碼2

領紅包