nodejs加密模塊使用

nodejs的加密模塊crypto是使用了系統(tǒng)自帶的openssl的加密模塊來實(shí)現(xiàn)的乙埃,里面實(shí)現(xiàn)了多種加密算法,如md5朗徊、sh1快骗、aes等等,即常用的hash算法娜庇,Hmac算法,加解密算法等

hash算法的使用方篮,用md5加密來舉例名秀,其他的類似
const crypto = require('crypto');

/** 
* md5加密 
* @param str 需要加密的字符串 
* @returns {*} 
*/
function encryptMd5(str) {    
      const md5 = crypto.createHash('md5'); 
      return md5.update(str).digest('hex').toLowerCase();
}

const test1 = encryptMd5(‘1231asdda’);
console.log(test1);

只用crypto.createHash('md5')創(chuàng)建一個md5加密的hash,因?yàn)閯?chuàng)建的md5加密只能對每個加密字符串使用一次藕溅,所以需要每次加密的時候都創(chuàng)建一個新的md5加密塊

update告訴md5加密需要對哪個字符串進(jìn)行加密匕得,可以多次調(diào)用,多次調(diào)用的結(jié)果類似于使用md5.update(str1+str2);也就是說

md5.update(str1);
md5.update(str2);
和
md5.update(str1+str2);

加密出來的效果是一樣的

調(diào)用digest()對update傳入的字符串或者二進(jìn)制數(shù)據(jù)進(jìn)行加密,可以傳入加密后顯示的格式作為參數(shù)巾表,可接受的參數(shù):hex(16進(jìn)制)汁掠、base64(base64格式)等,一般選用的是hex格式集币,一旦調(diào)用了digest之后考阱,這個md5加密串就完成使命了,再次調(diào)用md5.update或者digest都會提示錯誤鞠苟,這個時候要想對其他數(shù)據(jù)進(jìn)行加密的話乞榨,需要創(chuàng)建一個新的加密字串算法

AES等加解密算法

這類算法允許我們對一個字符串或者二進(jìn)制數(shù)據(jù)進(jìn)行加密,然后在解密出來使用当娱,以AES算法來舉例

// 加密
function encrypt(str, key) {    
  const cipherChunks = [];   
  const ciper = crypto.createCipheriv('aes-128-ecb', key, '');  
  cipherChunks.push(ciper.update(str, 'utf-8', 'hex'));    
  cipherChunks.push(ciper.final('hex'));   
  return cipherChunks.join('');
}

// 解密
function decipher(str, key){
    const cipherChunks = [];
    const decipher = crypto.createDecipheriv('aes-128-ecb', key, '');
    cipherChunks.push(decipher.update(str, 'hex', 'utf-8'));
    cipherChunks.push(decipher.final('hex'));
    return cipherChunks.join('');
}

類似于hash算法的使用吃既,nodejs提供了兩種創(chuàng)建AES算法的方式,一種需要使用加密向量createDecipheriv趾访,一種是不需要使用加密向量的createDecipher态秧,一般我們要使自己的加密出來的結(jié)果和java等其他語言加密的結(jié)果相等的話,就需要使用第一種方式扼鞋,傳遞一個空字符串作為向量,注意這里的key的長度需要為16位字符長度申鱼,也就是128的字節(jié)長度,因?yàn)槲覀兪褂玫氖莂es-128-ecb的加解密算法云头,也就是key需要為128字節(jié)長度即16個字符串的長度

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末捐友,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子溃槐,更是在濱河造成了極大的恐慌匣砖,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件昏滴,死亡現(xiàn)場離奇詭異猴鲫,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)谣殊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進(jìn)店門拂共,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人姻几,你說我怎么就攤上這事宜狐。” “怎么了蛇捌?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵抚恒,是天一觀的道長。 經(jīng)常有香客問我络拌,道長俭驮,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任春贸,我火速辦了婚禮混萝,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘祥诽。我一直安慰自己譬圣,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布雄坪。 她就那樣靜靜地躺著厘熟,像睡著了一般。 火紅的嫁衣襯著肌膚如雪维哈。 梳的紋絲不亂的頭發(fā)上绳姨,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天,我揣著相機(jī)與錄音阔挠,去河邊找鬼飘庄。 笑死,一個胖子當(dāng)著我的面吹牛购撼,可吹牛的內(nèi)容都是我干的跪削。 我是一名探鬼主播谴仙,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼碾盐!你這毒婦竟也來了晃跺?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤毫玖,失蹤者是張志新(化名)和其女友劉穎掀虎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體付枫,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡烹玉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了阐滩。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片二打。...
    茶點(diǎn)故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖叶眉,靈堂內(nèi)的尸體忽然破棺而出址儒,到底是詐尸還是另有隱情,我是刑警寧澤衅疙,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布莲趣,位于F島的核電站,受9級特大地震影響饱溢,放射性物質(zhì)發(fā)生泄漏喧伞。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一绩郎、第九天 我趴在偏房一處隱蔽的房頂上張望潘鲫。 院中可真熱鬧,春花似錦肋杖、人聲如沸溉仑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽浊竟。三九已至,卻和暖如春津畸,著一層夾襖步出監(jiān)牢的瞬間振定,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工肉拓, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留后频,地道東北人。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓暖途,卻偏偏與公主長得像卑惜,于是被迫代替她去往敵國和親膏执。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,685評論 2 360

推薦閱讀更多精彩內(nèi)容

  • 概述 之前一直對加密相關(guān)的算法知之甚少残揉,只知道類似DES胧后、RSA等加密算法能對數(shù)據(jù)傳輸進(jìn)行加密芋浮,且各種加密算法各有...
    Henryzhu閱讀 3,023評論 0 14
  • 本文主要介紹移動端的加解密算法的分類抱环、其優(yōu)缺點(diǎn)特性及應(yīng)用,幫助讀者由淺入深地了解和選擇加解密算法纸巷。文中會包含算法的...
    蘋果粉閱讀 11,522評論 5 29
  • 這篇文章主要講述在Mobile BI(移動商務(wù)智能)開發(fā)過程中镇草,在網(wǎng)絡(luò)通信、數(shù)據(jù)存儲瘤旨、登錄驗(yàn)證這幾個方面涉及的加密...
    雨_樹閱讀 2,478評論 0 6
  • 之前的項(xiàng)目中接觸過一些加密的方法梯啤,也沒有太仔細(xì)的進(jìn)行記錄和研究。最近在寫SDK時存哲,加密模塊的占比相當(dāng)之大因宇;借此時機(jī)...
    大雄記閱讀 10,991評論 20 63
  • 隨著國家經(jīng)濟(jì)的快速發(fā)展修肠,有車的人越來越多贺辰,“喝酒不開車,開車不喝酒”已深入人心嵌施,相對應(yīng)的汽車服務(wù)也應(yīng)運(yùn)而生饲化,從20...
    后河車貸閱讀 671評論 0 0