Nodejs uses "crypto-js" package.
Dotnet uses "System.Security.Cryptography" namespace.
Dotnet
void Main()
{
string clearText = "oktay";
Console.WriteLine("clearText: " + clearText);
string encrypted = Crypto.EncryptToBase64(clearText);
Console.WriteLine("encrypted: " + encrypted);
}
public static class Crypto
{
public static string EncryptToBase64(string decryptedText)
{
byte[] rawSecretKey = { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 };
string PassPhrase = "passPhrase";
MD5CryptoServiceProvider x = new System.Security.Cryptography.MD5CryptoServiceProvider();
byte[] data = Encoding.UTF8.GetBytes(PassPhrase);
byte[] passwordKey = x.ComputeHash(data);
Console.WriteLine("key: " + BitConverter.ToString(passwordKey).Replace("-", ""));
Console.WriteLine("iv : " + BitConverter.ToString(rawSecretKey).Replace("-", ""));
RijndaelManaged rijndael = new RijndaelManaged();
ICryptoTransform rijndaelEncryptor = rijndael.CreateEncryptor(passwordKey, rawSecretKey);
try
{
byte[] decryptedData = Encoding.UTF8.GetBytes(decryptedText);
byte[] newClearData = rijndaelEncryptor.TransformFinalBlock(decryptedData, 0, decryptedData.Length);
return Convert.ToBase64String(newClearData, 0, newClearData.Length);
}
catch (Exception ex)
{
throw ex;
}
}
}
Node.js
var CryptoJS = require("crypto-js");
function byteArrayToHexString(byteArray) {
return Array.prototype.map
.call(byteArray, function(byte) {
return ("0" + (byte & 0xff).toString(16)).slice(-2);
})
.join("");
}
function EncryptToBase64(password) {
console.log("clearText: " + password);
var PassPhrase = "passPhrase";
var rawSecretKey = [ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 ];
var myRijndaelKeyBytes = CryptoJS.enc.Utf8.parse(PassPhrase);
var myRijndaelKey = CryptoJS.MD5(CryptoJS.enc.Utf8.parse(PassPhrase));
console.log("key: " + myRijndaelKey);
var myRijndaelIV = byteArrayToHexString(rawSecretKey);
var ivCodeWords = CryptoJS.enc.Hex.parse(myRijndaelIV);
console.log("iv: " + ivCodeWords);
var encrypted = CryptoJS.AES.encrypt(
CryptoJS.enc.Utf8.parse(password),
myRijndaelKey,
{
iv: ivCodeWords,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
}
);
var base64 = CryptoJS.enc.Base64.stringify(encrypted.ciphertext);
console.log("encrypted: " + base64);
}
EncryptToBase64("oktay");
return;
Result
clearText: oktay key: C6CEC8C6CAA9A579644664F0575DB2F5 iv : 01010101010101010101010101010101 encrypted: S+6CSoMM6no9atihmfyayQ==
0 comments:
Post a Comment