nodejs中crypto,node nodejs

本文目錄一覽:

求教nodejs怎麼對密碼進行加鹽的hash加密

以前java項目最近打算用node.js重寫,但是加密這裡實在沒搞定。java中加密是:1024次加鹽sha-1加密,

一個例子:salt:47998d63768aa877,密文:bef36ba826b045a7c5e536a2f7131a6c232eee36,明文:yunstudio2013

下面是java代碼:

private static byte[] digest(byte[] input, String algorithm, byte[] salt, int iterations) {

try {

MessageDigest digest = MessageDigest.getInstance(algorithm);

if (salt != null) {

digest.update(salt);

}

byte[] result = digest.digest(input);

for (int i = 1; i iterations; i++) {

digest.reset();

result = digest.digest(result);

}

return result;

} catch (GeneralSecurityException e) {

throw Exceptions.unchecked(e);

}

}

我在js裡面是這麼乾的,但是結果一直不對,代碼如下:

//bef36ba826b045a7c5e536a2f7131a6c232eee36

var hash = crypto.createHmac(“sha1”, 「47998d63768aa877」).update(「yunstudio2013」).digest(「hex」);

for (var i = 1; i 1024; i++) {

hash = crypto.createHmac(“sha1”, 「47998d63768aa877」).update(hash).digest(「hex」);

console.log(hash);

}

nodejs裡面怎麼實現HMAC-SHA1

1)crypto模塊

crypto.createHmac(‘sha1’, app_secret).update(‘待加密字串’).digest().toString(‘base64’); //base64

crypto.createHmac(‘sha1’, app_secret).update(‘待加密字串’).digest(‘hex’);   //16進位

    但該模塊針對部分數據加密的結果,與其他語言加密的結果會不一致,因此採用第二種方式

2)crypto-js

var CryptoJS = require(‘crypto-js’);

var str = ‘orderId=21140600050549799429orderStatus=TRADE_SUCCESSpayTime=2014-07-22 11:43:31’;

var key = ‘REzySUKRCPfyfV/jfgwTA==’;

var sign = CryptoJS.HmacSHA1(str, key).toString();

console.log(sign);

nodejs怎樣獲取一個上傳文件的MD5碼

MD5中的MD代表Message Digest,就是信息摘要的意思,不過這個信息摘要不是信息內容的縮寫,而是根據公開的MD5演算法對原信息進行數學變換後得到的一個128位(bit)的特徵碼。

1、D5就是求字元串的md5,文件就是一個字元串;

2、前台目前就別考慮讀文件內容了(大部分瀏覽器不行) 都讓後台做;

可以直接看nodeclub源代碼,如下:

var crypto = require(‘crypto’);

exports.encrypt = function (str, secret) {

var cipher = crypto.createCipher(‘aes192』, secret);

var enc = cipher.update(str, ‘utf8』, 『hex』);

enc += cipher.final(『hex』);

return enc;

};

exports.decrypt = function (str, secret) {

var decipher = crypto.createDecipher(‘aes192』, secret);

var dec = decipher.update(str, ‘hex』, 『utf8』);

dec += decipher.final(『utf8』);

return dec;

};

exports.md5 = function (str) {

var md5sum = crypto.createHash(『md5』);

md5sum.update(str);

str = md5sum.digest(『hex』);

return str;

};

exports.randomString = function (size) {

size = size || 6;

var code_string = ‘ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789』;

var max_num = code_string.length + 1;

var new_pass = ‘』;

while (size 0) {

new_pass += code_string.charAt(Math.floor(Math.random() * max_num));

size–;

}

return new_pass;

};

關於nodejs 怎麼實現 crypto des加密

var crypto = require(‘crypto’);

var key = ‘12345670’;

exports.des = {

  algorithm:{ ecb:’des-ecb’,cbc:’des-cbc’ },

  encrypt:function(plaintext,iv){

    var key = new Buffer(key);

    var iv = new Buffer(iv ? iv : 0);

    var cipher = crypto.createCipheriv(this.algorithm.ecb, key, iv);

    cipher.setAutoPadding(true) //default true

    var ciph = cipher.update(plaintext, ‘utf8’, ‘base64’);

    ciph += cipher.final(‘base64’);

    return ciph;

  },

  decrypt:function(encrypt_text,iv){

    var key = new Buffer(key);

    var iv = new Buffer(iv ? iv : 0);

    var decipher = crypto.createDecipheriv(this.algorithm.ecb, key, iv);

    decipher.setAutoPadding(true);

    var txt = decipher.update(encrypt_text, ‘base64’, ‘utf8’);

    txt += decipher.final(‘utf8’);

    return txt;

  }

};

nodejs怎麼打包加密

使用require(‘crypto’)調用加密模塊。

加密模塊需要底層系統提供OpenSSL的支持。它提供了一種安全憑證的封裝方式,可以用於HTTPS安全網路以及普通HTTP連接。

該模塊還提供了一套針對OpenSSL的hash(哈希),hmac(密鑰哈希),cipher(編碼),decipher(解碼),sign(簽名)以及verify(驗證)等方法的封裝。

crypto.createCredentials(details)

原創文章,作者:ULJIZ,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/329108.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
ULJIZ的頭像ULJIZ
上一篇 2025-01-14 18:55
下一篇 2025-01-14 18:55

相關推薦

  • NodeJS 建立TCP連接出現粘包問題

    在TCP/IP協議中,由於TCP是面向位元組流的協議,發送方把需要傳輸的數據流按照MSS(Maximum Segment Size,最大報文段長度)來分割成若干個TCP分節,在接收端…

    編程 2025-04-29
  • 如何解決Node.js中jwt.sign()響應過慢的問題

    本文將從多個方面探討如何解決Node.js中jwt.sign()響應過慢的問題,給出完整的代碼示例與最佳實踐,幫助開發者更好地處理這個問題。 一、問題概述 在使用Node.js編寫…

    編程 2025-04-27
  • n node:全能編程開發工程師

    一、n node——什麼是它? n node是一個多線程的平台,可以用來構建高效的網路應用程序,能夠實現事件驅動、非阻塞I/O的架構。使用n node,開發人員可以用JavaScr…

    編程 2025-04-25
  • Node Koa詳解

    一、什麼是Node Koa Node Koa是一個全新的web框架,它是基於Node.js平台和ES6語法編寫的、輕量級、支持中間件的框架。由於其非常優秀的性能和高度可定製的特性,…

    編程 2025-04-25
  • Node.js ORM詳解

    一、什麼是ORM ORM(Object Relational Mapping)對象關係映射,是一種將面向對象語言程序中的對象自動持久化到關係型資料庫中的技術。 ORM可以讓程序員使…

    編程 2025-04-25
  • Node.js調用DLL詳解

    Node.js是一個開源、跨平台的JavaScript運行環境,它能夠讓JavaScript代碼在伺服器端運行。在Node.js中調用DLL,可以讓JavaScript訪問一些高效…

    編程 2025-04-24
  • NVM Node.js:管理多版本Node.js的利器

    一、NVM Node.js是什麼? NVM Node.js全稱是Node Version Manager,是一個用於管理多個Node.js版本的開源工具。它允許您安裝、切換、卸載和…

    編程 2025-04-24
  • Node.js的全面解析

    Node.js是一個開源的、跨平台的JavaScript運行時環境。它的出現和發展,極大地促進了JavaScript在服務端的應用,也解決了在傳統web應用中前後端分離、路由控制、…

    編程 2025-04-24
  • Node.js文檔全面解析

    一、安裝Node.js Node.js是基於V8引擎的,它支持許多操作系統,如Windows、Mac和Linux。安裝Node.js之前,需要先選擇相應的操作系統版本。可以在官方網…

    編程 2025-04-23
  • node包管理工具的綜述

    一、npm的安裝和概述 npm是Node.js的包管理工具,是全球最大的軟體倉庫,擁有超過100萬個包供開發者使用。 npm的安裝很簡單,只需要使用腳本工具即可: curl -fs…

    編程 2025-04-23

發表回復

登錄後才能評論