我想在客户端加密数据。所以我找到了SJCL npm
遍历那里的文档。但是,SJCL贡献者提供的文档较少,因此无法以有角度的方式实现
我尝试过
我安装了软件包
1. npm install --save sjcl
之后,我也尝试安装类型定义
2. npm install --save sjcl @types/sjcl
这是我的package.json
{
“名称”:“项目名称”,
“版本”:“ 0.0.0”,
“脚本”:{
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
“私人”:是,
“依赖项”:{
"@angular/animations": "~7.1.0",
"@angular/cdk": "~7.1.0",
"@angular/common": "~7.1.0",
"@angular/compiler": "~7.1.0",
"@angular/core": "~7.1.0",
"@angular/forms": "~7.1.0",
"@angular/platform-browser": "~7.1.0",
"@angular/platform-browser-dynamic": "~7.1.0",
"@angular/router": "~7.1.0",
"@types/axios": "^0.14.0",
"@types/sjcl": "^1.0.28",
"angular-filepond": "^1.0.5",
"core-js": "^2.5.4",
"rxjs": "~6.3.3",
"sjcl": "^1.0.8",
"tslib": "^1.9.0",
"zone.js": "~0.8.26"
},
“ devDependencies”:{
"@angular-devkit/build-angular": "~0.11.0",
"@angular/cli": "~7.1.2",
"@angular/compiler-cli": "~7.1.0",
"@angular/language-service": "~7.1.0",
"@schematics/angular": "~7.1.0",
"@types/echarts": "^4.1.3",
"@types/jasmine": "~2.8.8",
"@types/jasminewd2": "~2.0.3",
"@types/node": "^8.9.5",
"codelyzer": "~4.5.0",
"jasmine-core": "~2.99.1",
"jasmine-spec-reporter": "~4.2.1",
"karma": "~3.1.1",
"karma-chrome-launcher": "~2.2.0",
"karma-coverage-istanbul-reporter": "~2.0.1",
"karma-jasmine": "~1.1.2",
"karma-jasmine-html-reporter": "^0.2.2",
"protractor": "~5.4.0",
"ts-node": "~7.0.0",
"tslint": "~5.11.0",
"typescript": "~3.1.6"
} }
也 我已经做到了
import * as sjcl from 'sjcl';
在我的组件之一中
此外,我已经通过此链接 Using SJCL library in Angular2
当我运行有角度的应用程序时。 。 。我正在
./ node_modules / sjcl / sjcl.js中的警告 找不到模块:错误:无法解析'./node_modules/sjcl'中的'crypto'
注释开始:
使用的sjcl.encrypt(“ password”,“ data”) 但在console.log(sjcl.encrypt(“ password”,“ data”))之后 显示未定义
注释结束:
可能是我的 note 不够完美,或者我将其定义为错误的 现在,我的问题是“如何在没有此警告的情况下使用SJCL加密数据”
答案 0 :(得分:3)
我遇到了同样的问题,经过一些研究,我发现这是与节点相关的警告。使用Angular,您需要修改文件:
node_modules/@angular-devkit/build-angular/src/angular-cli-files/models/webpack-configs/browser.js
我更改的文件末尾
节点:false,
进入
节点:{crypto:true,流:true},
答案 1 :(得分:1)
我已将sjcl库用于我的react应用程序。 但是过程保持不变。
import sjcl from 'sjcl';
现在您可以使用sjcl.encrypt()函数。 如果您正在寻找AES加密的示例,则可以查看我的详细答案https://stackoverflow.com/a/60504619/6453913
您也可以使用传统的commonJs require方法。