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

nodejs 實(shí)現(xiàn)釘釘ISV接入的加密解密方法

 更新時(shí)間:2017年01月16日 10:39:01   作者:黒烏  
這篇文章主要介紹了nodejs 實(shí)現(xiàn)釘釘ISV接入的加密解密方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的的朋友參考下吧,需要的朋友可以參考下

這是我開發(fā)Worktile釘釘版本的時(shí)候遇到的當(dāng)時(shí)感覺比較難的地方,現(xiàn)在寫下來方法供大家學(xué)習(xí)交流

解密方法

exports.decryptMsg = function (text) {
 var aes_msg_buffer = new Buffer(text, 'base64');
 var key = new Buffer(aes_key + "=", 'base64');
 var iv = key.slice(0, 16);
 var decipher = crypto.createDecipheriv('aes-256-cbc', key, iv);
 var dec = decipher.write(aes_msg_buffer);
 dec = decipher.read();
 var msg_leng_buffer = dec.slice(16, 20);
 var msg_length = msg_leng_buffer.readInt32BE();
 var rand_buffer = dec.slice(20, 20 + msg_length);
 var msg = rand_buffer.toString("utf-8");
 var result = JSON.parse(msg);
 return result;
};

加密方法

exports.encrypt_text = function (text, aes_key, suiteKey) {
 var key = new Buffer(aes_key + "=", 'base64');
 var iv = key.slice(0, 16);
 var random_buffer = new Buffer(exports.getRandomStr(16), 'utf-8');
 var buffer = new Buffer(text, 'utf-8');
 var length_buffer = new Buffer(4);
 length_buffer.writeUInt32BE(buffer.length, 0);
 var corpidBytes = new Buffer(suiteKey, 'utf-8');
 var newBuffer = Buffer.concat([random_buffer, length_buffer, buffer, corpidBytes]);
 var cipher = crypto.createCipheriv('aes-256-cbc', key, iv);
 //cipher.write(newBuffer);
 //var dec = cipher.read();
 var cipheredMsg = Buffer.concat([cipher.update(/*encoded*/newBuffer), cipher.final()]);
 return cipheredMsg.toString('base64');
};

簽名方法

var arr =[token, timestamp, nonce, res_encrypt] //token 是配置釘釘套件的token,timestamp時(shí)間戳, nonce隨機(jī)字符串, res_encrypt是上面加密后的結(jié)果
exports.signature_arr = function (arr) {
 arr.sort();
 var str = "";
 for (var i = 0; i < arr.length; i++) {
  str += arr[i];
 }
 var sha1 = crypto.createHash('sha1');
 sha1.update(str);
 var msg_signature = sha1.digest('hex');
 return msg_signature;
};

以上所述是小編給大家介紹的nodejs 實(shí)現(xiàn)釘釘ISV接入的加密解密方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Node.js的進(jìn)程管理的深入理解

    Node.js的進(jìn)程管理的深入理解

    這篇文章主要介紹了Node.js的進(jìn)程管理的深入理解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-01-01
  • 詳解node如何讓一個(gè)端口同時(shí)支持https與http

    詳解node如何讓一個(gè)端口同時(shí)支持https與http

    眾所周知node是一個(gè)高性能的web服務(wù)器,使用它可以很簡單的創(chuàng)建一個(gè)http或https的服務(wù)器。這篇文章主要介紹了詳解node如何讓一個(gè)端口同時(shí)支持https與http
    2017-07-07
  • Node.js如何提取文件中的中文字符

    Node.js如何提取文件中的中文字符

    這篇文章主要介紹了Node.js如何提取文件中的中文字符,本文介紹了在Node.js開發(fā)中如何使用代碼提取文件中的中文字符,幫助開發(fā)者更好地處理中文文本數(shù)據(jù),提高開發(fā)效率
    2023-05-05
  • 安裝node-sass的方法步驟

    安裝node-sass的方法步驟

    本文主要介紹了安裝node-sass的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • Node升級后vue項(xiàng)目node-sass報(bào)錯(cuò)問題及解決

    Node升級后vue項(xiàng)目node-sass報(bào)錯(cuò)問題及解決

    這篇文章主要介紹了Node升級后vue項(xiàng)目node-sass報(bào)錯(cuò)問題及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Node.js的項(xiàng)目構(gòu)建工具Grunt的安裝與配置教程

    Node.js的項(xiàng)目構(gòu)建工具Grunt的安裝與配置教程

    Grunt是為Node打造的項(xiàng)目構(gòu)建工具,相當(dāng)于C/C++世界中的makefile,可以執(zhí)行像壓縮、編譯、單元測試、代碼檢查以及打包發(fā)布的任務(wù),下面我們就來一起看一下Node.js的項(xiàng)目構(gòu)建工具Grunt的安裝與配置教程:
    2016-05-05
  • 前端面試之輸入npm?run后執(zhí)行原理

    前端面試之輸入npm?run后執(zhí)行原理

    這篇文章主要為大家介紹了前端面試之輸入npm?run后發(fā)生了什么及執(zhí)行原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • 詳解axios在node.js中的post使用

    詳解axios在node.js中的post使用

    最近因?yàn)楣ぷ鞯脑蛟趯W(xué)習(xí)使用網(wǎng)絡(luò)請求庫,因?yàn)檫@個(gè)項(xiàng)目用的是Promise,所以就選擇了axios,下面這篇文章主要給大家介紹了關(guān)于axios在node.js中的post使用的相關(guān)資料,文中介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-04-04
  • Node.js 實(shí)現(xiàn)遠(yuǎn)程桌面監(jiān)控的方法步驟

    Node.js 實(shí)現(xiàn)遠(yuǎn)程桌面監(jiān)控的方法步驟

    這篇文章主要介紹了Node.js 實(shí)現(xiàn)遠(yuǎn)程桌面監(jiān)控的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Node.js使用對話框ngDialog的示例代碼

    Node.js使用對話框ngDialog的示例代碼

    本篇文章主要介紹了Node.js使用對話框ngDialog的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-05-05

最新評論

枣庄市| 霍山县| 温州市| 禹州市| 珠海市| 西峡县| 荔波县| 从江县| 崇信县| 达孜县| 浠水县| 肇庆市| 密山市| 凉城县| 安达市| 淳化县| 怀柔区| 巴楚县| 洱源县| 高安市| 辽阳市| 弥渡县| 高密市| 贡觉县| 灯塔市| 禹城市| 旬阳县| 临潭县| 郎溪县| 疏勒县| 离岛区| 通河县| 利辛县| 池州市| 扶余县| 瑞昌市| 安岳县| 修文县| 望都县| 满洲里市| 江门市|