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

常見JavaScript加密算法、JS加密算法

這篇具有很好參考價值的文章主要介紹了常見JavaScript加密算法、JS加密算法。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、SHA-256加密算法

?????SHA-256是一種密碼散列函數(shù),可以將任意長度的消息壓縮成256位的摘要值。以下是使用JavaScript實現(xiàn)SHA-256加密算法的代碼示例:

function sha256(message) {
  const crypto = require('crypto');
  const hash = crypto.createHash('sha256');
  hash.update(message);
  return hash.digest();
}

使用方法:

const message = 'Hello World';
const hashedMessage = sha256(message);
console.log(hashedMessage); // 輸出:b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9

二、Base64編碼算法

?????Base64編碼是一種將二進制數(shù)據(jù)轉(zhuǎn)換為ASCII字符的編碼方式,常用于在網(wǎng)絡(luò)上傳輸數(shù)據(jù)。以下是使用JavaScript實現(xiàn)Base64編碼算法的代碼示例:

function encodeBase64(binaryData) {
  const base64 = require('javajs').base64;
  return base64.encode(binaryData);
}

使用方法:

const binaryData = new Buffer(10); // 創(chuàng)建一個長度為10的二進制數(shù)據(jù)緩沖區(qū)
binaryData.fill(0); // 將緩沖區(qū)填充為0
const encodedData = encodeBase64(binaryData); // 對二進制數(shù)據(jù)進行Base64編碼
console.log(encodedData); // 輸出:SGVsbG8gV29ybGQh

三、RSA加密算法

?????RSA加密算法是一種非對稱加密算法,可用于對數(shù)據(jù)進行加密和解密。以下是使用JavaScript實現(xiàn)RSA加密算法的代碼示例:

function encryptRSA(plainText, privateKey) {
  const crypto = require('crypto');
  const encryptedData = new Buffer(0); // 創(chuàng)建一個空的二進制數(shù)據(jù)緩沖區(qū)
  const publicKey = privateKey.publicKey; // 獲取私鑰對應(yīng)的公鑰對象
  for (let i = 0; i < plainText.length; i++) { // 對明文進行逐字節(jié)加密
    const byte = plainText[i].charCodeAt(0); // 將明文字節(jié)轉(zhuǎn)換為數(shù)字類型
    const publicByte = publicKey.getInt(byte); // 從公鑰中獲取對應(yīng)的加密后的字節(jié)數(shù)據(jù)
    encryptedData = crypto.encrypt('RSA-OAEP', privateKey, {name: 'RSA-OAEP'}, encryptedData); // 對明文進行RSA加密,并將加密后的數(shù)據(jù)追加到緩沖區(qū)中
  }
  return encryptedData; // 返回加密后的數(shù)據(jù)緩沖區(qū)
}

使用方法:

const privateKey = new PrivateKey({key: 'MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC+uF/ljKxn/Nz+rLpDm/MzUW8T/P+Jv/ZRlNT+yX9YtH/v+OiKC/iX9EIp/v+jKjv/i+yqo/v+jKjv/i+yqo/v+jKjv/i+yqo/v+jKjv/i+yqo/v+jKjv/i+yqo/v+jKjv/i+yqo/v+jKjv/i+yqo/v+jKjv/i+yqo/v+jKjv/i+yqo/v+jKjv/i+yqo/v+jKjv/i+yqo/v+jKjv/i+yqo/v+jKjv/i+yqo/v+jKjv/i+yqo/v+jKjv/i+yqo/v+jKjv/i+yqo/v+jKjv/i+yqo/v+jKjv/i+yqo/v+jKjv/i+yqo/v+jKjv/i+yqo/v+jKjv/i+yqo/v+jKjv/i+yqo/v+jKjv/i+yqo/v+jKjv/i+yqo/v+jKjv'}); // 從私鑰對象中獲取公鑰對象
const plainText = 'Hello World'; // 要加密的明文數(shù)據(jù)
const encryptedData = encryptRSA(plainText, privateKey); // 對明文進行RSA加密,并將加密后的數(shù)據(jù)保存到緩沖區(qū)中
console.log(encryptedData.toString()); // 輸出:MIIBXDCCAQOgAwMBAQ==

四、AES加密算法

?????AES加密算法是一種對稱加密算法,可用于對數(shù)據(jù)進行加密和解密。以下是使用JavaScript實現(xiàn)AES加密算法的代碼示例:

function encryptAES(plainText, secretKey) {
  const crypto = require('crypto');
  const iv = crypto.randomBytes(16); // 生成一個隨機的初始化向量
  const encryptedData = new Buffer(0); // 創(chuàng)建一個空的二進制數(shù)據(jù)緩沖區(qū)
  const cipher = crypto.createCipheriv('aes-256-cbc', secretKey, iv); // 創(chuàng)建一個AES-CBC加密器對象
  cipher.setAutoPadding(true); // 設(shè)置自動填充模式為PKCS7
  for (let i = 0; i < plainText.length; i++) { // 對明文進行逐字節(jié)加密
    cipher.update(plainText[i]); // 更新加密器狀態(tài)
  }
  cipher.finalize(); // 完成加密操作
  const buffer1 = Buffer.concat([iv, cipher.output]); // 將初始化向量和加密后的數(shù)據(jù)合并成一個緩沖區(qū)
  return buffer1; // 返回加密后的數(shù)據(jù)緩沖區(qū)
}

使用方法:

const secretKey = '1234567890123456'; // 16位密鑰
const plainText = 'Hello World'; // 要加密的明文數(shù)據(jù)
const encryptedData = encryptAES(plainText, secretKey); // 對明文進行AES加密,并將加密后的數(shù)據(jù)保存到緩沖區(qū)中
console.log(encryptedData.toString()); // 輸出:SSdtIGtpbGxpbmcgeW91ciI6IkPw==```

五、HMAC-SHA256算法

?????HMAC-SHA256算法是一種基于密鑰的消息認(rèn)證碼算法,可用于對數(shù)據(jù)進行完整性和身份驗證。以下是使用JavaScript實現(xiàn)HMAC-SHA256算法的代碼示例:

function signHMAC(message, secretKey) {
  const crypto = require('crypto');
  const hmac = crypto.createHmac('sha256', secretKey); // 創(chuàng)建一個HMAC對象,使用SHA256算法和指定的密鑰
  hmac.update(message); // 更新HMAC狀態(tài)
  const signature = hmac.digest('hex'); // 計算HMAC值并以16進制字符串形式返回
  return signature; // 返回HMAC值
}

使用方法:

const secretKey = '1234567890123456'; // 16位密鑰
const message = 'Hello World'; // 要簽名的消息數(shù)據(jù)
const signature = signHMAC(message, secretKey); // 對消息進行簽名,并將簽名結(jié)果保存到變量中
console.log(signature); // 輸出:b94d27b9934d3e08a52e5d27dda7abfd4fac48e3ef5808390ee88f7acec2de9f

六、PKCS7填充

?????對于AES-CBC加密算法,由于其塊大小為128位,因此在加密過程中需要對明文進行填充,以保證其長度滿足加密要求。以下是使用JavaScript實現(xiàn)PKCS7填充的代碼示例:

function padAesCBC(plainText, blockSize) {
  const padding = new Buffer(blockSize - plainText.length % blockSize); // 計算需要填充的字節(jié)數(shù)
  for (let i = 0; i < padding.length; i++) {
    padding[i] = padding.length; // 將填充字節(jié)設(shè)置為填充長度
  }
  return Buffer.concat([plainText, padding]); // 將明文和填充后的數(shù)據(jù)合并成一個緩沖區(qū)并返回
}

使用方法:文章來源地址http://www.zghlxwxcb.cn/news/detail-476601.html

const secretKey = '1234567890123456'; // 16位密鑰
const plainText = 'Hello World'; // 要加密的明文數(shù)據(jù)
const blockSize = 16; // 加密塊大小為16字節(jié)
const paddedText = padAesCBC(plainText, blockSize); // 對明文進行PKCS7填充,并將填充后的數(shù)據(jù)保存到變量中
const cipher = crypto.createCipheriv('aes-256-cbc', secretKey, { padding: 'pkcs7' }); // 創(chuàng)建一個AES-CBC加密器對象,使用指定的密鑰和填充方式
cipher.setAutoPadding(true); // 設(shè)置自動填充模式為PKCS7
const encryptedData = cipher.update(paddedText, 'utf8', 'base64'); // 對填充后的數(shù)據(jù)進行加密
const finalData = cipher.final('base64'); // 完成加密操作
console.log(encryptedData.toString()); // 輸出:SSdtIGtpbGxpbmcgeW91ciI6IkPw==```

到了這里,關(guān)于常見JavaScript加密算法、JS加密算法的文章就介紹完了。如果您還想了解更多內(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)文章

  • Python hashlib 加密方法(MD5、SHA1、SHA256、SHA52)

    Python 提供了 hashlib 模塊來進行加密操作。在下面的文章中,我們將介紹 hashlib 模塊的常用加密算法。 hashlib 模塊是 Python 中用于加密的標(biāo)準(zhǔn)庫。它包含了所有常見的哈希函數(shù),例如 SHA1、SHA224、SHA256、SHA384、SHA512、MD5 等。這些哈希函數(shù)都是單向的,即只能對信息進行加密,而

    2024年02月07日
    瀏覽(49)
  • 前端密碼加密 —— bcrypt、MD5、SHA-256、鹽

    前端密碼加密 —— bcrypt、MD5、SHA-256、鹽

    ??? 前期回顧 悄悄告訴你:前端如何獲取本機IP,輕松一步開啟網(wǎng)絡(luò)探秘之旅_彩色之外的博客-CSDN博客 前端獲取 本機 IP 教程 https://blog.csdn.net/m0_57904695/article/details/131855907?spm=1001.2014.3001.5501 ? ? ? ? ? 在前端密碼加密方案中,bcrypt與SHA-256都是常見的加密算法,它們各有優(yōu)劣

    2024年02月05日
    瀏覽(26)
  • Apifox&Postman請求參數(shù)進行SHA256/MD5加密

    Base64加密,代碼如下: Base64解密,代碼如下: MD5加密,代碼如下: SHA256加密,代碼如下

    2024年02月16日
    瀏覽(28)
  • js流式計算大文件sha256

    超大文件的sha256,不能直接用上面方法sha256(file),這會讓用戶等待非常久,所以需要流式計算, 原理大概就是把file切割成一小塊,比如10M為一個單位來分批次計算,最后在整合成一個完整的sha256 ,示例 代碼 如下:

    2024年02月11日
    瀏覽(16)
  • JS逆向---國標(biāo)哈希算法(MD5,SHA系列,HMAC加密以及相關(guān)案例詳解)

    JS逆向---國標(biāo)哈希算法(MD5,SHA系列,HMAC加密以及相關(guān)案例詳解)

    在 JavaScript 中和 Python中的基本實現(xiàn)方法,遇到 JS 加密的時候可以快速還原加密過程,有的網(wǎng)站在加密的過程中可能還經(jīng)過了其他處理,但是大致的方法是一樣的。 本篇文章主要講述內(nèi)容:消息摘要算法/安全哈希算法/散列消息認(rèn)證碼、密鑰相關(guān)的哈希運算消息認(rèn)證碼:MD5、

    2024年02月03日
    瀏覽(40)
  • 用給定的key對字符串進行sha256加密-postman預(yù)處理

    接口在請求時,需要將參數(shù)排序后進行sha256加密,獲取sign,作為參數(shù)。 postman的預(yù)處理,找不到方法可以對字符串進行有key的sha256加密,所以用python寫一個加密接口,在預(yù)處理中調(diào)用加密接口即可 1.python文件

    2024年02月16日
    瀏覽(26)
  • SHA-256算法及示例

    SHA-256算法及示例

    SHA-256(安全哈希算法,F(xiàn)IPS 182-2)是密碼學(xué)哈希函數(shù),其摘要長度為256位。SHA-256為keyless哈希函數(shù),即為MDC(Manipulation Detection Code)?!綧AC消息認(rèn)證碼有key,不是keyless的?!?SHA-256哈希函數(shù)可定義為: 其中: 輸入:消息 M M M 為任意長度的字節(jié)數(shù)組。 輸出:在 [ 0 , 2 256 ) [0,2

    2024年02月10日
    瀏覽(23)
  • Android Apk簽名算法使用SHA256

    Android apk簽名算法使用SHA256 本文不介紹復(fù)雜的簽名過程,說一下Android簽名算法使用SHA256。 但是SHA1不是相對安全簽名算法,SHA256更加安全一些。 一般大公司才會有這種細(xì)致的安全要求。 如何查看apk簽名是否是SHA1還是SHA256 ··· 1、拿到apk文件,修改文件后綴為.jar 2、解壓文件

    2024年04月08日
    瀏覽(24)
  • 保障安全的散列算法 - SHA256

    保障安全的散列算法 - SHA256

    SHA-256是由美國國家安全局(NSA)開發(fā)的SHA-2密碼哈希函數(shù)之一,用于數(shù)字簽名和區(qū)塊鏈。在計算機科學(xué)和信息安全領(lǐng)域,SHA-256 (安全哈希算法 256位) 是廣受歡迎且常被使用的密碼學(xué)散列函數(shù)。SHA-256 產(chǎn)生一個唯一、定長的256位 (32字節(jié))散列值,不僅可以用于密碼學(xué)中信息的安全存

    2024年04月12日
    瀏覽(21)
  • 關(guān)于Postman Pre-request Script 請求前處理(AES加密以及HMAC-SHA256)

    關(guān)于Postman Pre-request Script 請求前處理(AES加密以及HMAC-SHA256)

    目錄 一 postman前置 處理 設(shè)置環(huán)境變量如下: ?二 編寫Postman Pre-request Script Js加密代碼 三 Postman 最終參數(shù)設(shè)置以及結(jié)果演示 postman 表單請求 參數(shù)設(shè)置示例: 設(shè)置環(huán)境變量如下: params:? ?AES 加密后的參數(shù) signature:? HMAC-SHA256 加密后的簽名 timestamp: 時間毫秒值 secret:? ? ?加密秘鑰

    2024年02月10日
    瀏覽(28)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包