Selamlar aşağıdaki şekilde şifreleme de kullandığım bir sınıfım var :
public class AES_Encryption { private static byte[] _salt = Encoding.ASCII.GetBytes("1q2w3e4r5t6y7u");
public static string EncryptStringAES(string plainText,
string sharedSecret) {
if (string.IsNullOrEmpty(plainText)) throw new ArgumentNullException("plainText"); if (string.IsNullOrEmpty(sharedSecret)) throw new ArgumentNullException("sharedSecret"); string outStr = null; RijndaelManaged aesAlg = null; try { Rfc2898DeriveBytes key = new Rfc2898DeriveBytes(sharedSecret, _salt); aesAlg = new RijndaelManaged(); aesAlg.Key = key.GetBytes(aesAlg.KeySize / 8); aesAlg.IV = key.GetBytes(aesAlg.BlockSize / 8); ICryptoTransform encryptor =
aesAlg.CreateEncryptor(aesAlg.Key, aesAlg.IV);
using (MemoryStream msEncrypt = new MemoryStream()) { using (CryptoStream csEncrypt = new
CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write)) { using (StreamWriter swEncrypt = new StreamWriter(csEncrypt)) {
swEncrypt.Write(plainText); } } outStr = Convert.ToBase64String(msEncrypt.ToArray()); } } finally { if (aesAlg != null) aesAlg.Clear(); } return outStr; }
Bu sınıfı kullanıcı parolasını şifrelemekte şöyle kullanabiliyorum :
string key = "654654746546545987654654646546464";
AES_Encryption.EncryptStringAES("text",key);
Node js ile kullanıcı adı ve parolası ile işlem yapacağım ama parolayı yukarıdaki şekilde şifrelediğim için node js de yine gönderilen parolayı şifrelyip kontrolünü bu şekilde yapmam lazım.
https://code.google.com/p/crypto-js/#AES sayfasında ve http://nodejs.org/api/crypto.html lardan bir çözüm bulamadım. Şuradaki http://mindon.github.io/blog/2012/03/31/match-encrypt-and-decrypt-in-php-and-nodejs/örneği denedim ama KEY size ım ı beğenmedi. Node JS ile yukarıdaki şifreleme ile aynı sonucu nasıl elde ederim.