最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JS常見加解密算法小結(jié)

 更新時(shí)間:2023年12月26日 08:41:13   作者:用戶59563584462  
在Web開發(fā)中,保護(hù)用戶數(shù)據(jù)是至關(guān)重要的,而對(duì)數(shù)據(jù)進(jìn)行加密是其中一種有效手段,本文將深入淺出地介紹常見的加解密算法,包括消息摘要算法、對(duì)稱加密算法以及非對(duì)稱加密算法,需要的朋友可以參考下

消息摘要算法

消息摘要算法

消息摘要算法是一種單向散列函數(shù),常用于加密和數(shù)據(jù)完整性驗(yàn)證。常見的消息摘要算法包括MD5、SHA-1、SHA-256和SHA-512等。它的特點(diǎn)是對(duì)不同的明文生成唯一且定長(zhǎng)的密文,是不可逆的,即無法通過“密文”還原出明文。

md5

const CryptoJs = require('crypto-js');
let password = "123456";
let encPwd = CryptoJs.MD5(password).toString();
console.log(encPwd);  // e10adc3949ba59abbe56e057f20f883e

sha1

const CryptoJs = require('crypto-js');
let password = "123456";
let encPwd = CryptoJs.SHA1(password).toString();
console.log(encPwd);  // 7c4a8d09ca3762af61e59520943dc26494f8941b

對(duì)稱加密算法

對(duì)稱加密算法

對(duì)稱加密算法是一種加密技術(shù),它使用相同的密鑰(稱為對(duì)稱密鑰)同時(shí)用于加密和解密數(shù)據(jù)。常見的加密算法有DESAES、3DES等。AES是一種廣泛使用的對(duì)稱加密算法,被認(rèn)為是目前最安全的對(duì)稱加密算法之一。

AES-ECB

let password = "123456";
let key = "1234567890abcdef"
cfg = {
 mode: CryptoJs.mode.ECB,
 padding: CryptoJs.pad.Pkcs7
}
let encPwd = CryptoJs.AES.encrypt(password, key, cfg).toString()
console.log(encPwd)  // U2FsdGVkX1+meKI+IXd44qgc50bKb2rDbN91OutwBWs=

根據(jù)密鑰長(zhǎng)度的不同, 可以把AES加密算法分為AES-128/AES-192/AES-256。也就是說密鑰的長(zhǎng)度必須是16/24/32個(gè)字節(jié) 。常見mode模式有CBC、ECB兩種,這兩種模式的區(qū)別在于是否需要配置iv向量

AES-CBC

const CryptoJs = require('crypto-js');
let password = CryptoJs.enc.Utf8.parse("123456")  // 指定以什么編碼方式解析明文
let key = CryptoJs.enc.Utf8.parse("1234567890abcdef")
let iv = CryptoJs.enc.Utf8.parse("123456")  // 需指定初始向量
cfg = {
 mode: CryptoJs.mode.CBC,
 padding: CryptoJs.pad.Pkcs7,
 iv: iv
}
let encPwd = CryptoJs.AES.encrypt(password, key, cfg).toString()

非對(duì)稱加密算法

非對(duì)稱加密算法

非對(duì)稱加密算法是一種密碼學(xué)中的加密方式,也被稱為公鑰加密算法。與對(duì)稱加密算法不同,非對(duì)稱加密算法使用一對(duì)密鑰,分別是公鑰和私鑰。非對(duì)稱加密算法的一個(gè)關(guān)鍵特性是,使用公鑰加密的數(shù)據(jù)只能由相應(yīng)的私鑰解密,而使用私鑰加密的數(shù)據(jù)只能由相應(yīng)的公鑰解密。常見的非對(duì)稱加密算法包括RSA和ECC等

公鑰可以公開分享的密鑰,用于加密數(shù)據(jù)。任何人都可以獲得公鑰,但不能由公鑰推導(dǎo)出私鑰。

私鑰是保密的密鑰,用于解密由公鑰加密的數(shù)據(jù)。只有私鑰的持有者能夠解密使用公鑰加密的信息。

RSA

window = global
const JSEncrypt = require('jsencrypt')
publickey = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCnX3j/luQG7JnPFIFJKEvPC/tFtv14XIzT7FQXYpKsOt2t4uLh6hZa5H5WcEinF46nc91UbrS5UA9Fnnm+Ev20pwUEPVu4On47am6vJOsq8oqQoZDsMu6VGZIzKIm8vDylO6I2xrTaXY2G3hdiRKF7988tA4oYsFOTZ/yG/BOlNwIDAQAB'
// 加密
let jse = new JSEncrypt()
jse.setPublicKey(publickey)
var encStr = jse.encrypt('123456')
console.log("加密數(shù)據(jù): " + encStr)
// 解密
privatekey = 'MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBAKdfeP+W5Absmc8UgUkoS88L+0W2/XhcjNPsVBdikqw63a3i4uHqFlrkflZwSKcXjqdz3VRutLlQD0Weeb4S/bSnBQQ9W7g6fjtqbq8k6yryipChkOwy7pUZkjMoiby8PKU7ojbGtNpdjYbeF2JEoXv3zy0DihiwU5Nn/Ib8E6U3AgMBAAECgYA6KW0stEytM08HrQJ4X65oVquMwFg4mUC+7CMUtUZu303lfTCGfQgjsb9NXluA5SjHe/Xvv0DCHNYRxU5dBNBwhIXaRLy6zLKKKp/0gOn1C3dFY/MQOVoEpJ8uxUQh9Kf37F5J9gT64JNooKTTNydqTcmfIhG/u3WFiTVjfW5sEQJBANmvAgUneA6eEC6LwhX9gxdp0T2S+hop19zAm4ErHQld47TlSAxVgwArQG4oJ5J2OWlIT4vzuO1OJOaCj4wZYXMCQQDE1W0uZA1YtjVK7OUuD3f/rgNzolpc0XEEZDPxKsoirEFgW/cFNCTJKIdGK2RgnthLWiN01a9bL6+sF2vLO2wtAkAd0h3Cuv91cS3iUn8KKCqXQIXLm6DriKPrt+8VqORXbidNlsNh/SzvDv3KmXGiXNPMmn1bPM4upC/l7CjiFnAFAkBnmu+dO4zK5R2oEomPdRT0v+OROiPWN2gFp7iveJZtKb4/uiiL1KaIO4z4ol5zfSjcgNWo6dEjbjZJnwpeLykBAkAY/tYLGyrHe0isoZL2xXPlrvde2tbKcbzMrheH1wuqEMX0o0+uHCyFgn2rAzMcfUlntb9iZLLJDkJ+bFET1j3l'
jse.setPrivateKey(privatekey)
var Str = jse.decrypt(encStr)
console.log("解密數(shù)據(jù): " + Str)

本文介紹了Web開發(fā)中常見的加解密算法,包括消息摘要、對(duì)稱加密和非對(duì)稱加密。這些算法在保障用戶數(shù)據(jù)安全、通信加密方面發(fā)揮著關(guān)鍵作用。深入理解它們有助于開發(fā)者選擇合適的安全策略,確保系統(tǒng)的完整性和用戶隱私的最大保護(hù)。在數(shù)字化時(shí)代,掌握這些加密技術(shù)是構(gòu)建可信賴Web應(yīng)用系統(tǒng)的重要一環(huán)。

以上就是JS常見加解密算法小結(jié)的詳細(xì)內(nèi)容,更多關(guān)于JS加解密算法的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 原生javascript實(shí)現(xiàn)圖片輪播切換效果

    原生javascript實(shí)現(xiàn)圖片輪播切換效果

    這篇文章主要為大家詳細(xì)介紹了原生javascript實(shí)現(xiàn)圖片輪播切換效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • uni-app之APP和小程序微信授權(quán)方法

    uni-app之APP和小程序微信授權(quán)方法

    這篇文章主要介紹了uni-app之APP和小程序微信授權(quán)方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-05-05
  • 4種JavaScript實(shí)現(xiàn)簡(jiǎn)單tab選項(xiàng)卡切換的方法

    4種JavaScript實(shí)現(xiàn)簡(jiǎn)單tab選項(xiàng)卡切換的方法

    這篇文章主要介紹了4種JavaScript實(shí)現(xiàn)簡(jiǎn)單tab選項(xiàng)卡切換的方法,感興趣的小伙伴們可以參考一下
    2016-01-01
  • js輪播圖之旋轉(zhuǎn)木馬效果

    js輪播圖之旋轉(zhuǎn)木馬效果

    這篇文章主要為大家詳細(xì)介紹了js輪播圖之旋轉(zhuǎn)木馬效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-10-10
  • JavaScript設(shè)計(jì)模式之代理模式詳解

    JavaScript設(shè)計(jì)模式之代理模式詳解

    這篇文章主要為大家詳細(xì)介紹了JavaScript設(shè)計(jì)模式之代理模式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • JavaScript實(shí)現(xiàn)基礎(chǔ)排序算法的示例詳解

    JavaScript實(shí)現(xiàn)基礎(chǔ)排序算法的示例詳解

    這篇文章主要為大家詳細(xì)介紹了如何利用JavaScript實(shí)現(xiàn)基礎(chǔ)排序算法,如:冒泡排序、選擇排序、插入排序和快速排序,感興趣的可以了解一下
    2022-06-06
  • 為你的微信小程序體積瘦身詳解

    為你的微信小程序體積瘦身詳解

    這篇文章主要給大家介紹了關(guān)于微信小程序瘦身的相關(guān)資料,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。
    2017-05-05
  • JavaScript動(dòng)畫實(shí)例之粒子文本的實(shí)現(xiàn)方法詳解

    JavaScript動(dòng)畫實(shí)例之粒子文本的實(shí)現(xiàn)方法詳解

    這篇文章主要介紹了JavaScript動(dòng)畫實(shí)例之粒子文本的實(shí)現(xiàn)方法詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 原生js實(shí)現(xiàn)旋轉(zhuǎn)木馬效果

    原生js實(shí)現(xiàn)旋轉(zhuǎn)木馬效果

    這篇文章主要為大家詳細(xì)介紹了原生js實(shí)現(xiàn)旋轉(zhuǎn)木馬效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • JavaScript制作簡(jiǎn)單計(jì)算器功能

    JavaScript制作簡(jiǎn)單計(jì)算器功能

    這篇文章主要為大家詳細(xì)介紹了JavaScript制作簡(jiǎn)單計(jì)算器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07

最新評(píng)論

日照市| 武汉市| 木兰县| 汪清县| 碌曲县| 伊川县| 綦江县| 称多县| 临海市| 孙吴县| 大城县| 印江| 屏边| 禄劝| 宣汉县| 若尔盖县| 陆丰市| 长沙县| 缙云县| 吉林市| 甘南县| 申扎县| 阿拉善盟| 台州市| 邢台市| 昭通市| 蓬莱市| 宜昌市| 寻甸| 陆河县| 昌平区| 家居| 开封市| 澜沧| 安宁市| 荔浦县| 上栗县| 个旧市| 南宫市| 绵阳市| 资溪县|