PDA

View Full Version : استاندارد رمزگذاری Rijndael



once4ever
پنج شنبه 03 فروردین 1385, 13:02 عصر
این یک مثال درمورد رمزگذاری Rijndael هست.
یه سوال داشتم - میخوام عبارت رمزشده رو ببینم بصورت string کی میتونه کمکم کنه؟
تو مثال پایین متن رو رمزگذاری میکنه و بعد دوباره decode میکنه و نشون میده! (درواقع فقط متن اصلی رو نشون میده)


using System;
using System.IO;
using System.Text;
using System.Security.Cryptography;

namespace RijndaelManaged_Examples
{
class MyMainClass
{
public static void Main()
{
string original = "This is a much longer string of data than a public/private key algorithm will accept.";
string roundtrip;
ASCIIEncoding textConverter = new ASCIIEncoding();
RijndaelManaged myRijndael = new RijndaelManaged();
byte[] fromEncrypt;
byte[] encrypted;
byte[] toEncrypt;
byte[] key;
byte[] IV;

//Create a new key and initialization vector.
myRijndael.GenerateKey();
myRijndael.GenerateIV();

//Get the key and IV.
key = myRijndael.Key;
IV = myRijndael.IV;

//Get an encryptor.
ICryptoTransform encryptor = myRijndael.CreateEncryptor(key, IV);

//Encrypt the data.
MemoryStream msEncrypt = new MemoryStream();
CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write);

//Convert the data to a byte array.
toEncrypt = textConverter.GetBytes(original);

//Write all data to the crypto stream and flush it.
csEncrypt.Write(toEncrypt, 0, toEncrypt.Length);
csEncrypt.FlushFinalBlock();

//Get encrypted array of bytes.
encrypted = msEncrypt.ToArray();

//This is where the message would be transmitted to a recipient
// who already knows your secret key. Optionally, you can
// also encrypt your secret key using a public key algorithm
// and pass it to the mesage recipient along with the RijnDael
// encrypted message.

//Get a decryptor that uses the same key and IV as the encryptor.
ICryptoTransform decryptor = myRijndael.CreateDecryptor(key, IV);

//Now decrypt the previously encrypted message using the decryptor
// obtained in the above step.
MemoryStream msDecrypt = new MemoryStream(encrypted);
CryptoStream csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read);

fromEncrypt = new byte[encrypted.Length];

//Read the data out of the crypto stream.
csDecrypt.Read(fromEncrypt, 0, fromEncrypt.Length);

//Convert the byte array back into a string.
roundtrip = textConverter.GetString(fromEncrypt);

//Display the original data and the decrypted data.
Console.WriteLine("Original: {0}", original);
Console.WriteLine("Round Trip: {0}", roundtrip);
}
}
}

این بهترین استاندارد برای رمزگداری 256 بایتی هست؟

alirezador
جمعه 04 فروردین 1385, 15:06 عصر
عزیز بهتره یک خورده در مورد این توضیح بدی ما که نفهمیدیم