Este team de redactores ha estado horas buscando la solución a tus dudas, te dejamos la solución de modo que deseamos resultarte de mucha ayuda.
Solución:
Tuve un problema similar. Estoy usando Angular 4 / Angular-Cli 1.0.0. Lo que funcionó para mí:
npm install crypto-js --save
npm install @types/crypto-js --save
Después de estos dos comandos, consulte el crypto-js biblioteca en el angular-cli.json archivo, en los “scripts” array. En mi caso:
"scripts": [
"../node_modules/crypto-js/crypto-js.js"
]
Notarás que en el node_modules / @ tipos directorio, tendrá un subdirectorio crypto-js. Así que pon una referencia al node_modules/@types/crypto-js/index.d.ts en su código, usando una directiva de triple barra, para que el compilador sepa que el archivo de mecanografía es necesario para compilar ese archivo de módulo:
///
Alternativamente, también puede utilizar “tipos” attribute en lugar de “ruta”, ya que está haciendo referencia a una definición de tipificación dentro de node_modules / @ types:
///
Después de eso, puede usar su código exactamente como está:
///
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));
npm instal crypto-js
//Inside imports of your TS file include
import * as CryptoJS from 'crypto-js';
// Declare this key and iv values in declaration
private key = CryptoJS.enc.Utf8.parse('4512631236589784');
private iv = CryptoJS.enc.Utf8.parse('4512631236589784');
// Methods for the encrypt and decrypt Using AES
encryptUsingAES256()
var encrypted = CryptoJS.AES.encrypt(CryptoJS.enc.Utf8.parse(JSON.stringify("Your Json Object data or string")), this.key,
keySize: 128 / 8,
iv: this.iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
);
console.log('Encrypted :' + encrypted);
this.decryptUsingAES256(encrypted);
return encrypted;
decryptUsingAES256(decString)
var decrypted = CryptoJS.AES.decrypt(decString, this.key,
keySize: 128 / 8,
iv: this.iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
);
console.log('Decrypted : ' + decrypted);
console.log('utf8 = ' + decrypted.toString(CryptoJS.enc.Utf8));
El código C # para codificar o decodificar está aquí.
public class encr
public static string DecryptStringAES(string cipherText)
var keybytes = Encoding.UTF8.GetBytes("4512631236589784");
var iv = Encoding.UTF8.GetBytes("4512631236589784");
var encrypted = Convert.FromBase64String(cipherText);
var decriptedFromJavascript = DecryptStringFromBytes(encrypted, keybytes, iv);
return decriptedFromJavascript;
private static string DecryptStringFromBytes(byte[] cipherText, byte[] key, byte[] iv) key.Length <= 0)
throw new ArgumentNullException("key");
if (iv == null
public static string EncryptStringAES(string plainText)
var keybytes = Encoding.UTF8.GetBytes("4512631236589784");
var iv = Encoding.UTF8.GetBytes("4512631236589784");
var encryoFromJavascript = EncryptStringToBytes(plainText, keybytes, iv);
return Convert.ToBase64String(encryoFromJavascript);
private static byte[] EncryptStringToBytes(string plainText, byte[] key, byte[] iv) iv.Length <= 0)
throw new ArgumentNullException("key");
byte[] encrypted;
// Create a RijndaelManaged object
// with the specified key and IV.
using(var rijAlg = new RijndaelManaged())
rijAlg.Mode = CipherMode.CBC;
rijAlg.Padding = PaddingMode.PKCS7;
rijAlg.FeedbackSize = 128;
rijAlg.Key = key;
rijAlg.IV = iv;
// Create a decrytor to perform the stream transform.
var encryptor = rijAlg.CreateEncryptor(rijAlg.Key, rijAlg.IV);
// Create the streams used for encryption.
using(var msEncrypt = new MemoryStream())
using(var csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write))
using(var swEncrypt = new StreamWriter(csEncrypt))
//Write all data to the stream.
swEncrypt.Write(plainText);
encrypted = msEncrypt.ToArray();
// Return the encrypted bytes from the memory stream.
return encrypted;