اليوم سنتحدث عن العالم الجميل للتشفير، وليس عن المشفر (وضعه في سرداب).
الأمان مهم، ولهذا السبب سننظر في كيفية التشفير على الخادم وفك تشفير عميل ويندوز 8 في تطبيقات مترو.
في هذا المثال سنستخدم AES مع تشفير 256 بايت، (تشفير عسكري)
حزب الخدمة#
public string Get()
{
//
String original = "1234567812345678";
String key = "CLAVEDESEGURIDAD";
byte[] KeyArr = System.Text.Encoding.ASCII.GetBytes(key);
String iv = "VECTORINICIALIZACION";
byte[] IvArr = System.Text.Encoding.ASCII.GetBytes(iv);
using (AesManaged myAes = new AesManaged())
{
return EncryptStringToBytes_Aes(original, KeyArr, IvArr);
}
}
static string EncryptStringToBytes_Aes(string plainText, byte[] Key, byte[] IV)
{
byte[] encrypted;
using (AesManaged aesAlg = new AesManaged())
{
ICryptoTransform encryptor = aesAlg.CreateEncryptor(Key, IV);
using (MemoryStream msEncrypt = new MemoryStream())
{
using (CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write))
{
using (StreamWriter swEncrypt = new StreamWriter(csEncrypt))
{
swEncrypt.Write(plainText);
swEncrypt.Flush();
encrypted = msEncrypt.ToArray();
return Convert.ToBase64String(encrypted);
}
}
}
}
}جزء العميل
function RunSample(cadenacifradaenbase64) {
var Algorithm = Windows.Security.Cryptography.Core.SymmetricKeyAlgorithmProvider.openAlgorithm("AES_CBC");
var keymaterial2 = Windows.Security.Cryptography.CryptographicBuffer.convertStringToBinary("CLAVEDESEGURIDAD", Windows.Security.Cryptography.BinaryStringEncoding.utf8);
var key2;
try {
key2 = Algorithm.createSymmetricKey(keymaterial2);
}
catch (ex) {
Scenario5Output.textContent += ex.message;
Scenario5Output.textContent += "An invalid key size was selected for the given algorithm.n";
return;
}
var bufferCifrado = Windows.Security.Cryptography.CryptographicBuffer.decodeFromBase64String(cadenacifradaenbase64);
var iv = Windows.Security.Cryptography.CryptographicBuffer.convertStringToBinary("VECTORINICIALIZACION", Windows.Security.Cryptography.BinaryStringEncoding.utf8);
var decrypted = Windows.Security.Cryptography.Core.CryptographicEngine.decrypt(key2, bufferCifrado , iv);
var solucion = Windows.Security.Cryptography.CryptographicBuffer.convertBinaryToString(Windows.Security.Cryptography.BinaryStringEncoding.utf8, decrypted);
}إذا رأيت أنك تحب هذا النوع من المقالات، في اليوم التالي سنبدأ العملية العكسية






