# encrypt-tool **Repository Path**: nnsay/encrypt-tool ## Basic Information - **Project Name**: encrypt-tool - **Description**: nodejs 加密解密工具 - **Primary Language**: NodeJS - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2016-01-29 - **Last Updated**: 2020-12-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #加密解密工具 ----------- sensoro加密解码的工具包,需要redis配合,redis负责存储password和iv,支持自动刷新password和iv配置! ## 使用方法 ``` var encryptHelp = require('@sensoro/encrypt-tool'); var text = JSON.stringify({ name: 'test', age: 18, birthday: new Date() }); encryptHelp.encrypt(text, function(err, encryptedObj) { console.log(encrytedObj) encryptHelp.decrypt(encryptedObj, callback); }); ``` ## 方法介绍 ###1. 设置 ``` var encryptHelp = require('@sensoro/encrypt-tool'); var config = encryptHelp.set(options);//同步方法 ``` `参数说明:` | 参数 | 说明 | 必须| |:------: |:----------: | :----: | |password | 加密解密的password | | |algorithm | 加密解密算法,默认aes-256-gcm| |expire | password iv 过期时间默认1周| |iv | 偏移量默认随机12位| |redis | redis配置{host/port/index}| `返回值说明:` | 参数 | 说明 | 必须| |:------: |:----------: | :----: | |同上 ###2. 初始化 ``` var encryptHelp = require('@sensoro/encrypt-tool'); var config = encryptHelp.set(options);//同步方法 encryptHelp.init(callback); ``` `返回值说明:` 出错时callback第一个参数返回错误! ###3. 加密 ``` var encryptHelp = require('@sensoro/encrypt-tool'); encryptHelp.encrypt(text, callback); ``` | 参数 | 说明 | 必须| |:------: |:----------: | :----: | |text | 要加密的字符串,如果是对象会自动JSON.stringify | √| `callback返回值说明:` | 参数 | 说明 | |:------: |:----------: |err | 错误 | |encryptd | 加密后的字符串| ###4. 用key和iv进行自定义加密 ``` var encryptHelp = require('@sensoro/encrypt-tool'); encryptHelp.encryptWithPwdIV(text, password, iv, callback); ``` | 参数 | 说明 | 必须| |:------: |:----------: | :----: | |text | 要加密的字符串,如果是对象会自动JSON.stringify | √| |password | 密码 | √| |iv | 偏移量 | √| `callback返回值说明:` | 参数 | 说明 | |:------: |:----------: |err | 错误 | |encryptd | 加密后的字符串| ###5. 解密 ``` var encryptHelp = require('@sensoro/encrypt-tool'); encryptHelp.decrypt(encrypted, callback); ``` | 参数 | 说明 | 必须| |:------: |:----------: | :----: | |encrypted | 加密后的字符串 | √| `返回值说明:` | 参数 | 说明 | |:------: |:----------: |err | 出错时第一个回调参数为err | |resultObj | 解密后的对象| ###6. 使用password和iv解密 ``` var encryptHelp = require('@sensoro/encrypt-tool'); encryptHelp.decrypt(encrypted, password, iv, callback); ``` | 参数 | 说明 | 必须| |:------: |:----------: | :----: | |encrypted | 加密后的字符串 | √| |password | 密码 | √| |iv | 偏移量 | √| `返回值说明:` | 参数 | 说明 | |:------: |:----------: |err | 出错时第一个回调参数为err | |resultObj | 解密后的对象| ###7. 获取最新的配置 ``` var encryptHelp = require('@sensoro/encrypt-tool'); encryptHelp.getEncryptConfig(callback); ``` `返回值说明:` | 参数 | 说明 | |:------: |:----------: |err | 出错时第一个回调参数为err | |config | 回调第二参数,redis当下的password,iv和过期时间的数据,JSON对象{ password: 'test', iv: 'iv', expire: -1 }|