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

前端加解密:Web Crypto API 、crypto-js 庫: MD5

這篇具有很好參考價(jià)值的文章主要介紹了前端加解密:Web Crypto API 、crypto-js 庫: MD5。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

[廢棄,不再維護(hù)]什么是crypto-js

github地址: https://github.com/brix/crypto-js
cryptojs文檔: https://cryptojs.gitbook.io/docs/#encoders

CryptoJS (crypto.js) 為 JavaScript 提供了各種各樣的加密算法。

CryptoJS是一個(gè)JavaScript加密算法庫,用于在客戶端瀏覽器中執(zhí)行加密和解密操作。它提供了一系列常見的加密算法,如AES、DES、Triple DES、Rabbit、RC4、MD5、SHA-1等等。

Active development of CryptoJS has been discontinued. This library is no longer maintained.

Nowadays, NodeJS and modern browsers have a native Crypto module. The latest version of CryptoJS already uses the native Crypto module for random number generation, since Math.random() is not crypto-safe. Further development of CryptoJS would result in it only being a wrapper of native Crypto. Therefore, development and maintenance has been discontinued, it is time to go for the native crypto module.
根據(jù)官方的建議,現(xiàn)代的 Node.js 和現(xiàn)代瀏覽器已經(jīng)內(nèi)置了原生的 Crypto 模塊,用于進(jìn)行加密和安全操作。原生的 Crypto 模塊提供了更可靠和安全的加密功能,因此,使用原生的 Crypto 模塊是更好的選擇。

如果你的項(xiàng)目需要進(jìn)行加密操作,我建議使用 Node.js 的原生 Crypto 模塊。具體使用方式和 API 可以參考 Node.js 官方文檔中關(guān)于 Crypto 模塊的部分:https://nodejs.org/api/crypto.html

對于瀏覽器端,可以使用 Web Crypto API 來進(jìn)行加密操作。Web Crypto API 是瀏覽器提供的原生加密 API,它提供了一系列的加密算法和操作方法。具體使用方式和 API 可以參考 MDN 文檔中關(guān)于 Web Crypto API 的部分:https://developer.mozilla.org/en-US/docs/Web/API/Web_Crypto_API

通過使用原生的 Crypto 模塊,你可以獲得更好的性能和更高的安全性,同時(shí)避免使用不再維護(hù)的 CryptoJS 庫。

安裝依賴

npm install crypto-js

MD5

MD5是一種常用的哈希算法,不可逆。用于將任意長度的消息壓縮成一個(gè)128位的摘要。MD5算法具有以下特點(diǎn):

壓縮性:任意長度的消息都可以被壓縮成一個(gè)128位的摘要。
容易計(jì)算:MD5算法的計(jì)算速度比較快,適用于對大量數(shù)據(jù)進(jìn)行哈希計(jì)算。
抗修改性:對原始數(shù)據(jù)進(jìn)行任何修改,都會(huì)導(dǎo)致哈希值的變化。
抗碰撞性:對不同的原始數(shù)據(jù),哈希值相同的概率非常小。

  const CryptoJS = require("crypto-js");
  // 生成隨機(jī)數(shù)
  const randomNumber = Math.floor(Math.random() * 1000000).toString();

  const md5Value = CryptoJS.MD5(randomNumber).toString();

原生 Web Crypto API

對于瀏覽器端,可以使用 Web Crypto API 來進(jìn)行加密操作。Web Crypto API 是瀏覽器提供的原生加密 API,它提供了一系列的加密算法和操作方法。具體使用方式和 API 可以參考 MDN 文檔中關(guān)于 Web Crypto API 的部分:https://developer.mozilla.org/en-US/docs/Web/API/Web_Crypto_API

md5

Web Crypto API 不直接支持 MD5 加密算法。

官方提到了 MD5 的一些特點(diǎn)和安全性問題:
MD5 是一種密碼學(xué)哈希函數(shù),可以生成 128 位(16 字節(jié))的哈希值。然而,由于存在漏洞,MD5 被認(rèn)為是不安全的,并不適合進(jìn)一步使用。官方建議在密碼學(xué)用途中使用更安全的替代算法,如 SHA-256 或 SHA-3。

總結(jié),MD5 不再被認(rèn)為是安全的密碼學(xué)哈希函數(shù),因此不建議在安全敏感的應(yīng)用中使用它。如果你需要進(jìn)行哈希計(jì)算,請考慮使用更安全的替代算法,如 SHA-256。

sha256

async function computeSHA256Hash(data) {
  const encoder = new TextEncoder();
  const dataBuffer = encoder.encode(data);
  const hashBuffer = await crypto.subtle.digest('SHA-256', dataBuffer);
  const hashArray = Array.from(new Uint8Array(hashBuffer));
  const hashHex = hashArray.map(byte => byte.toString(16).padStart(2, '0')).join('');
  return hashHex;
}

function generateAppSecret() {

  // 生成隨機(jī)數(shù)
  const randomNumber = Math.floor(Math.random() * 1000000).toString();
  return computeSHA256Hash(randomNumber);

}

注意:crypto.subtle.digest() 方法需要在 HTTPS 或者 localhost(即本地開發(fā)環(huán)境)下運(yùn)行,這是為了確保在安全的環(huán)境中使用加密功能。這是因?yàn)榧用懿僮魍ǔI婕懊舾械臄?shù)據(jù)和密鑰,為了保護(hù)這些信息不被惡意方截獲和篡改,使用加密功能的網(wǎng)頁必須通過 HTTPS 加密協(xié)議進(jìn)行傳輸。

如果在非 HTTPS 或者 localhost 環(huán)境下運(yùn)行 crypto.subtle.digest() 方法,瀏覽器會(huì)阻止該功能,并拋出錯(cuò)誤。這是為了防止在不安全的環(huán)境中使用加密功能,以免導(dǎo)致安全風(fēng)險(xiǎn)。

因此,在開發(fā)和測試階段,你可以在本地使用 localhost 運(yùn)行你的應(yīng)用程序,或者通過在本地配置 SSL 證書來使用 HTTPS。這樣,就可以在瀏覽器中正常使用 crypto.subtle.digest() 方法。

請注意,當(dāng)你將你的應(yīng)用程序部署到真實(shí)的生產(chǎn)環(huán)境時(shí),你應(yīng)該使用有效的 HTTPS 證書來保證數(shù)據(jù)的安全傳輸。文章來源地址http://www.zghlxwxcb.cn/news/detail-849703.html

到了這里,關(guān)于前端加解密:Web Crypto API 、crypto-js 庫: MD5的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 前端js加密庫的簡單使用——crypto-js、jsrsasign、jsencrypt

    個(gè)人經(jīng)驗(yàn),這三個(gè)加密庫的組合是最佳解決方案 crypto-js、jsrsasign、jsencrypt crypto-js 進(jìn)行 AES 對稱加密 jsrsasign 生成 RSA 密鑰對 jsencrypt 進(jìn)行 RSA 加解密

    2024年02月11日
    瀏覽(52)
  • 微信小程序使用crypto-js

    還是那個(gè)沒有任何開發(fā)意義的小程序?。?!這次的要求我就有點(diǎn)看不懂了,這是公司在日本出差的大佬寫的接口,平時(shí)交流發(fā)在群里的文檔全他喵是英文的,這讓我連四級都沒考過的怎么看的懂呢(是真的“沒考過”),所以菜不是沒有道理的。 在此之前大致搜索了一下xx

    2024年02月05日
    瀏覽(19)
  • 【高危】crypto-js<3.2.1 存在不安全的隨機(jī)性漏洞

    【高?!縞rypto-js<3.2.1 存在不安全的隨機(jī)性漏洞

    crypto-js 是一個(gè) JavaScript 加密庫,用于在瀏覽器和 Node.js 環(huán)境中執(zhí)行加密和解密操作。 crypto-js 3.2.1 之前版本中的 secureRandom 函數(shù)通過將字符串 0. 和三位隨機(jī)整數(shù)拼接的格式生成加密字符串,攻擊者可通過爆破破解加密字符。 漏洞名稱 crypto-js3.2.1 存在不安全的隨機(jī)性漏洞 漏洞

    2024年02月10日
    瀏覽(25)
  • python調(diào)用js文件加密時(shí)Cannot find module ‘crypto-js‘解決辦法

    首先安裝node.js 記得把node.js安裝在你python代碼文件的目錄下,雖然有點(diǎn)亂,但是這樣不容易出現(xiàn)其他問題,其次 然后把https://wwor.lanzoue.com/iE5Is0ixp9ef這個(gè)鏈接里面的壓縮包直接解壓到你代碼文件那個(gè)node_modules里面,這個(gè)鬼東西就是你node.js安裝的目錄下

    2024年02月16日
    瀏覽(26)
  • Vue中的加密方式(js-base64、crypto-js、jsencrypt、bcryptjs)

    Vue中的加密方式(js-base64、crypto-js、jsencrypt、bcryptjs)

    1.安裝js-base64庫? 2.?在Vue組件中引入js-base64庫 3.使用js-base64庫進(jìn)行加密 4.Vue中其他加密方式? 1.crypto-js 2.jsencrypt 3.bcryptjs 使用 Base64.encode() 方法對字符串進(jìn)行加密,并使用 Base64.decode() 方法對加密后的字符串進(jìn)行解密。您可以根據(jù)需要使用這些方法來加密和解密字符串。請注意

    2024年02月08日
    瀏覽(24)
  • 微信小程序使用crypto.js加密解密

    微信小程序使用crypto.js加密解密

    crypto.js是用來進(jìn)行AES加密的 注意AES在使用時(shí)有7個(gè)配置項(xiàng),前后端加解密記著統(tǒng)一參數(shù),測試時(shí)注意配置項(xiàng)的選擇是否一致。 AES加密測試工具 文件存放路徑: cryptoPro.js代碼:

    2024年02月11日
    瀏覽(25)
  • 前端使用AES密碼加密、解密,使用詳細(xì)(crypto加密解密,前后端分離,AES加密解密)

    1、 首先安裝?crypto-js插件,安裝命令如下:? ? -S等同于--save,保存在package.json文件中,是在dependencies 下, --save安裝包信息將加入到dependencies(生產(chǎn)環(huán)境)中,生產(chǎn)階段的依賴,也就是項(xiàng)目運(yùn)行時(shí)的依賴,就是程序上線后仍然需要依賴; -D等同于--save-dev,也保存在package.j

    2024年02月11日
    瀏覽(23)
  • JS逆向加密解密工具Crypto Magician、樂易助手、WT-JS 下載使用

    JS逆向加密解密工具Crypto Magician、樂易助手、WT-JS 下載使用

    方便開發(fā)者更好的定位加密算法,提高了開發(fā)的效率,必備神器; 提示:以下是本篇文章正文內(nèi)容,下面案例可供參考 下載地址:https://pan.baidu.com/s/13IxwJyIbKokpXdB4d42IOQ?pwd=chhj 消息摘要算法 對稱加密算法 非對稱加密算法 下載地址:https://pan.baidu.com/s/17ir4KJaXte1e88l7VfMs5A?pwd=mn1

    2024年02月11日
    瀏覽(26)
  • vue 使用crypto.js解密后,用JSON.parse轉(zhuǎn)義報(bào)錯(cuò)非空白格解決辦法

    vue 使用crypto.js解密后,用JSON.parse轉(zhuǎn)義報(bào)錯(cuò)非空白格解決辦法

    用JSON.parse轉(zhuǎn)義crypto解密后的json字符串會(huì)發(fā)生錯(cuò)誤。如圖: 那是因?yàn)閏rypto自己加了一些未可見的字符,所以用正常的JSON.parse(xxxx)會(huì)報(bào)錯(cuò)。

    2024年02月07日
    瀏覽(22)
  • 前端(js)md5加密

    1、引入md5源文件,代碼如下,直接復(fù)制。 2、在頁面引入md5文件。 3、使用md5加密。

    2024年02月11日
    瀏覽(23)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包