【发布时间】:2017-05-30 23:44:30
【问题描述】:
我很难在 typescript 中实现加密,在 C# 中实现解密。在这里发布问题之前,我用谷歌搜索并找到了一些链接,但这些链接与 JavaScript 相关,而不是打字稿。
Encrypt in javascript and decrypt in C# with AES algorithm
encrypt the text using cryptojs library in angular2
How to import non-core npm modules in Angular 2 e.g. (to use an encryption library)?
我按照上面的链接,在我当前的应用程序中实现加密/解密概念。
这是我在myservice.ts中写的代码
//import { CryptoJS } from 'node_modules/crypto-js/crypto-js.js';
//import 'crypto-js';
import * as CryptoJS from 'crypto-js';
var key = CryptoJS.enc.Utf8.parse('7061737323313233');
var iv = CryptoJS.enc.Utf8.parse('7061737323313233');
var encrypted = CryptoJS.AES.encrypt(CryptoJS.enc.Utf8.parse("It works"), key,
{
keySize: 128 / 8,
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
var decrypted = CryptoJS.AES.decrypt(encrypted, key, {
keySize: 128 / 8,
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
console.log('Encrypted :' + encrypted);
console.log('Key :' + encrypted.key);
console.log('Salt :' + encrypted.salt);
console.log('iv :' + encrypted.iv);
console.log('Decrypted : ' + decrypted);
console.log('utf8 = ' + decrypted.toString(CryptoJS.enc.Utf8));
在 myservice.ts 中添加上述代码行之前,我在 "crypto-js": "^3.1.9-1" 中添加了依赖项package.json 文件。
在package.json中添加上述依赖后,我成功恢复了包。但 CryptoJS 仍然在 myservice.ts 中显示错误,例如 can not found name as CryptoJS。
您能否告诉我如何从节点模块导入 CryptoJS,并告诉我如何使用高级安全算法 (AES) 在 typescript 中加密字符串并在 C# 中解密相同的字符串?
普雷迪普
【问题讨论】:
-
typescript 是 javascript 的超集。所以曾经在 javascript 中有效的东西将在 typescript 中有效。
-
谢谢,我知道 typescript 是 javascript 的超集,但是当在我的应用程序中添加上面的代码行时,我得到了“找不到名称为 CryptoJS”的异常。如果您想了解更多信息,请查看我更新的问题一次。
-
为了测试互操作性,这可能很好,但不要像那样在生产中使用它。在该代码中,几乎所有你能以密码方式做错的事情都是错误的。
-
@CodesInChaos 您能否链接或描述执行 OP 尝试执行的操作的正确方法。我在生产环境中遇到了同样的问题。我需要在 ts 中加密一个 JSON 字符串并在 c# 中解密它。
标签: c# security angular typescript aes