欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

前端利用jsencrypt.js進(jìn)行RSA加密示例詳解

 更新時(shí)間:2023年08月22日 15:15:11   作者:無is  
這篇文章主要為大家介紹了前端利用jsencrypt.js進(jìn)行RSA加密示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

引言

最近有用到j(luò)sencrypt來對(duì)登錄密碼進(jìn)行rsa加密處理,記錄下來,供自己以后查閱。

什么是RSA加密

RSA加密算法是一種非對(duì)稱加密算法,RSA加密使用了"一對(duì)"密鑰.分別是公鑰和私鑰,這個(gè)公鑰和私鑰其實(shí)就是一組數(shù)字!其二進(jìn)制位長(zhǎng)度可以是1024位或者2048位.長(zhǎng)度越長(zhǎng)其加密強(qiáng)度越大,目前為止公之于眾的能破解的最大長(zhǎng)度為768位密鑰,只要高于768位,相對(duì)就比較安全.所以目前為止,這種加密算法一直被廣泛使用.

RSA加密與解密

  • 使用公鑰加密的數(shù)據(jù),利用私鑰進(jìn)行解密
  • 使用私鑰加密的數(shù)據(jù),利用公鑰進(jìn)行解密

RSA秘鑰生成方式

Mac系統(tǒng)內(nèi)置OpenSSL(開源加密庫),所以可以直接在終端上使用命令。

Windows系統(tǒng)可以使用git命令行工具

  • 單擊鼠標(biāo)右鍵——git bash here 調(diào)出git bash
  • 生成私鑰,密鑰長(zhǎng)度為1024bit
    $ openssl genrsa -out private.pem 1024
    Generating RSA private key, 1024 bit long modulus (2 primes)
    ...+++++
    .............................+++++
    e is 65537 (0x010001)
  • 從私鑰中提取公鑰
  $ openssl rsa -in private.pem -pubout -out public.pem
  writing RSA key
  • 這樣就生成了private.pem 和 public.pem兩個(gè)文件,可以利用終端進(jìn)行查看
$ cat private.pem
-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQDNNorgFngK1zjHOnQlIUh5NjOxZIiEPZ8Knu6B/IyY0LBRToo1
TZC7/nK6j8on/2sBdv5nFuTwlOpW9UL8C4yZJdjTwYXn5X+wZZsz1RXNI5zjhSXu
GeYzF7WhxusKo6zrR6b0IMNg2W016PWU3UkjOXxoaIGkMN77oIorPP5bHQIDAQAB
AoGABOdOvjgLOkcWRjxxVgnLj4nqBk0erfpC+J//lv+P5H7oF6lGyCtIUBWubCLP
c9E4n1pWjeQQKGeGiflmVlt4So2UPQJD/fvpmT0lswaud+ObbUtFIo4CApHMXdTB
jIC/nDSdFut2Yd32N8OH/QYnzAS1tarLGjk3x+Dg5nY3VEECQQDvM7GLXT2df85I
X+FBX9YiwUPXqciUJp3XdBOngsyENOFu0C3/cBTxvaiKkMXVPqMjOdoCAY+hz/k1
xPUVBpZ5AkEA25/Objru9LI1XSj8M1gJoIUpiR+mJysN7Q7wWbSK6DI+Hz95NQ5r
kAzG89lwMW3dLycH8VPGsWMuxjA7NG0QxQJBAIxDxdKxJFZdAXuTLaWGKy1KIxwt
pT6qvlf+6x+JJaBI2gB+9toYwU9YJaLLbhazmjonzFzsyWrbZ4lOK2De8hECQQCl
uJRgAQBGjCJQRZjodUnuYgzRd5w8efRsKJWcWutmAmN12MNxEYyAieOmJTDPW4NH
DUClDP4k5B5rVgGWsaWxAkA4m0bHwiPqO4/Yz6eyl2jYvljtmqr7KZFXrlsBUrIm
XXaTuMdsOmLlp/u078XFw0N+RaUWxbE6ATH7mTGjB2nV
-----END RSA PRIVATE KEY-----
$ cat public.pem
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDNNorgFngK1zjHOnQlIUh5NjOx
ZIiEPZ8Knu6B/IyY0LBRToo1TZC7/nK6j8on/2sBdv5nFuTwlOpW9UL8C4yZJdjT
wYXn5X+wZZsz1RXNI5zjhSXuGeYzF7WhxusKo6zrR6b0IMNg2W016PWU3UkjOXxo
aIGkMN77oIorPP5bHQIDAQAB
-----END PUBLIC KEY-----

利用工具網(wǎng)站在線生成秘鑰

工具網(wǎng)站

jsencrypt介紹

jsencrypt就是一個(gè)基于rsa加解密的js庫

使用方法

  • 安裝
  npm install jsencrypt 
  • 引入
  import JSEncrypt from 'jsencrypt'
  • rsa加密
  var encryptor = new JSEncrypt()  // 創(chuàng)建加密對(duì)象實(shí)例
  //之前ssl生成的公鑰,復(fù)制的時(shí)候要小心不要有空格
  var pubKey = '-----BEGIN PUBLIC KEY-----MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1QQRl0HlrVv6kGqhgonD6A9SU6ZJpnEN+Q0blT/ue6Ndt97WRfxtSAs0QoquTreaDtfC4RRX4o+CU6BTuHLUm+eSvxZS9TzbwoYZq7ObbQAZAY+SYDgAA5PHf1wNN20dGMFFgVS/y0ZWvv1UNa2laEz0I8Vmr5ZlzIn88GkmSiQIDAQAB-----END PUBLIC KEY-----'
  encryptor.setPublicKey(pubKey)//設(shè)置公鑰
  var rsaPassWord = encryptor.encrypt('要加密的內(nèi)容')  // 對(duì)內(nèi)容進(jìn)行加密
  • rsa解密
  var decrypt = new JSEncrypt()//創(chuàng)建解密對(duì)象實(shí)例
  //之前ssl生成的秘鑰
  var priKey  = '-----BEGIN RSA PRIVATE KEY-----MIICXAIBAAKBgQC1QQRl0HlrVv6kGqhgonD6A9SU6ZJpnEN+Q0blT/ue6Ndt97WRfxtSAs0QoquTreaDtfC4RRX4o+CU6BTuHLUm+eSvxZS9TzbwoYZq7ObbQAZAY+SYDgAA5PHf1wNN20dGMFFgVS/y0ZWvv1UNa2laEz0I8Vmr5ZlzIn88GkmSiQIDAQABAoGBAKYDKP4AFlXkVlMEP5hS8FtuSrUhwgKNJ5xsDnFV8sc3yKlmKp1a6DETc7N66t/Wdb3JVPPSAy+7GaYJc7IsBRZgVqhrjiYiTO3ZvJv3nwAT5snCoZrDqlFzNhR8zvUiyAfGD1pExBKLZKNH826dpfoKD2fYlBVOjz6i6dTKBvCJAkEA/GtL6q1JgGhGLOUenFveqOHJKUydBAk/3jLZksQqIaVxoB+jRQNOZjeSO9er0fxgI2kh0NnfXEvH+v326WxjBwJBALfTRar040v71GJq1m8eFxADIiPDNh5JD2yb71FtYzH9J5/d8SUHI/CUFoROOhxr3DpagmrnTn28H0088vubKe8CQDKMOhOwx/tS5lqvN0YQj7I6JNKEaR0ZzRRuEmv1pIpAW1S5gTScyOJnVn1tXxcZ9xagQwlT2ArfkhiNKxjrf5kCQAwBSDN5+r4jnCMxRv/Kv0bUbY5YWVhw/QjixiZTNn81QTk3jWAVr0su4KmTUkg44xEMiCfjI0Ui3Ah3SocUAxECQAmHCjy8WPjhJN8y0MXSX05OyPTtysrdFzm1pwZNm/tWnhW7GvYQpvE/iAcNrNNb5k17fCImJLH5gbdvJJmCWRk=-----END RSA PRIVATE KEY----'
  decrypt.setPrivateKey(priKey)//設(shè)置秘鑰
  var uncrypted = decrypt.decrypt(encrypted)//解密之前拿公鑰加密的內(nèi)容

目前的應(yīng)用場(chǎng)景是在用戶注冊(cè)或登錄的時(shí)候,用公鑰對(duì)密碼進(jìn)行加密,再去傳給后臺(tái),后臺(tái)用私鑰對(duì)加密的內(nèi)容進(jìn)行解密,然后進(jìn)行密碼校驗(yàn)或者保存到數(shù)據(jù)庫。

參考文章

以上就是前端利用jsencrypt.js進(jìn)行RSA加密示例詳解的詳細(xì)內(nèi)容,更多關(guān)于前端jsencrypt.js RSA加密的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 微信小程序 同步請(qǐng)求授權(quán)的詳解

    微信小程序 同步請(qǐng)求授權(quán)的詳解

    這篇文章主要介紹了微信小程序 同步請(qǐng)求授權(quán)的詳解的相關(guān)資料,在小程序首次打開的時(shí)候,我需要同時(shí)請(qǐng)求獲取多個(gè)權(quán)限,由用戶逐一授權(quán),這樣的需求實(shí)現(xiàn),需要的朋友可以參考下
    2017-08-08
  • next.js源碼解析getStaticProps?getStaticPaths使用場(chǎng)景

    next.js源碼解析getStaticProps?getStaticPaths使用場(chǎng)景

    這篇文章主要為大家介紹了next.js源碼解析getStaticProps?getStaticPaths使用場(chǎng)景,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • JS前端宏任務(wù)微任務(wù)及Event Loop使用詳解

    JS前端宏任務(wù)微任務(wù)及Event Loop使用詳解

    這篇文章主要為大家介紹了JS前端宏任務(wù)微任務(wù)及Event Loop使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • 詳解Anyscript開發(fā)指南繞過typescript類型檢查

    詳解Anyscript開發(fā)指南繞過typescript類型檢查

    這篇文章主要為大家介紹了詳解Anyscript開發(fā)指南繞過typescript類型檢查,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • JavaScript異步操作中串行和并行

    JavaScript異步操作中串行和并行

    這篇文章主要介紹了JavaScript異步操作中串行和并行,主要內(nèi)容是寫一下js中es5和es6針對(duì)異步函數(shù),串行執(zhí)行和并行執(zhí)行的方案。已經(jīng)串行和并行結(jié)合使用的例子。,需要的朋友可以參考一下
    2021-11-11
  • 微信小程序 loading 詳解及實(shí)例代碼

    微信小程序 loading 詳解及實(shí)例代碼

    這篇文章主要介紹了微信小程序 loading 詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下
    2016-11-11
  • 微信小程序 頁面滑動(dòng)事件的實(shí)例詳解

    微信小程序 頁面滑動(dòng)事件的實(shí)例詳解

    這篇文章主要介紹了微信小程序 頁面滑動(dòng)事件的實(shí)例詳解的相關(guān)資料,希望通過本文能幫助到大家,讓大家實(shí)現(xiàn)這樣的功能,需要的朋友可以參考下
    2017-10-10
  • 微信小程序 UI與容器組件總結(jié)

    微信小程序 UI與容器組件總結(jié)

    這篇文章主要介紹了微信小程序 UI與容器組件總結(jié)的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • 微信小程序滾動(dòng)Tab實(shí)現(xiàn)左右可滑動(dòng)切換

    微信小程序滾動(dòng)Tab實(shí)現(xiàn)左右可滑動(dòng)切換

    這篇文章主要介紹了微信小程序滾動(dòng)Tab實(shí)現(xiàn)左右可滑動(dòng)切換的相關(guān)資料,這里提供實(shí)現(xiàn)實(shí)例幫助大家實(shí)現(xiàn)這樣的功能,需要的朋友可以參考下
    2017-08-08
  • 前端工程化cjs?umd?esm?打包差異詳解

    前端工程化cjs?umd?esm?打包差異詳解

    這篇文章主要為大家介紹了前端工程化cjs?umd?esm?打包差異詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09

最新評(píng)論