J'ai du mal à implémenter le chiffrement en TypeScript et le déchiffrement en C #. Avant de poster une question ici, je l'ai fait sur Google et j'ai trouvé des liens, mais ces liens sont liés à JavaScript et non à TypeScript.
Crypter en javascript et décrypter en C # avec l'algorithme AES
crypter le texte en utilisant la bibliothèque cryptojs dans angular2
J'ai suivi les liens ci-dessus pour implémenter le concept de cryptage/décryptage dans mon application actuelle.
Ceci est le code que j'ai écrit dans 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));
Avant d'ajouter les lignes de code ci-dessus dans myservice.ts , j'ai ajouté la dépendance en tant que "crypto-js" : "^ 3.1.9-1" dans le fichier package.json .
Après avoir ajouté la dépendance ci-dessus dans package.json, j'ai ensuite restauré les packages avec succès. Mais toujours, CryptoJS affiche une erreur dans myservice.ts comme ne peut pas trouver le nom comme CryptoJS .
Pouvez-vous me dire comment importer le CryptoJS à partir de modules de nœuds et également comment crypter la chaîne en TypeScript et décrypter la même chaîne en C # à l'aide de l'algorithme de sécurité avancé (AES)?
Pradeep
J'ai eu un problème similaire. J'utilise Angular 4/Angular-Cli 1.0.0. Ce qui a fonctionné pour moi:
npm install crypto-js --save
npm install @types/crypto-js --save
Après ces deux commandes, référencez la bibliothèque crypto-js dans la bibliothèque angular-cli.json fichier, dans le tableau "scripts". Dans mon cas:
"scripts": [
"../node_modules/crypto-js/crypto-js.js"
]
Vous remarquerez que dans le répertoire node_modules/@ types , vous aurez un sous-répertoire crypto-js. Mettez donc une référence au fichier node_modules/@types/crypto-js/index.d.ts dans votre code, en utilisant un triple -slash directive , donc le compilateur sait que le fichier de typage est nécessaire pour compiler ce fichier de module:
/// <reference path="relative_path_to_cypto_folder/index.d.ts" />
Alternativement, vous pouvez également utiliser l'attribut "types" au lieu de "path", car vous faites référence à une définition de typages dans node_modules/@ types:
/// <reference types="crypto-js" />
Après cela, vous pouvez utiliser votre code exactement tel qu'il est:
/// <reference types="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));