- привет! Я пытаюсь зашифровать данные, но всякий раз, когда я запускаю эту ошибку, появляется сообщение о том, что не так с моим кодом?.Ошибка: длина данных для расшифровки недопустима.
using System;
using System.Collections.Generic;
using System.Text;
using System.Linq;
using System.Web;
using System.IO;
using System.Security.Cryptography;
/// <summary>
/// Summary description for StringEncritacao
/// </summary>
namespace Seguranca
{
public static class StringEncritacao
{
public static string Encritacao(string sourceData)
{
//define a chave e inicializa o valor do vetor
byte[] key = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8 };
byte[] iv = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8 };
try
{
//converte o dado para array
byte[] sourceDataBytes = System.Text.ASCIIEncoding.ASCII.GetBytes(sourceData);
//obter fluxo de memoria
MemoryStream tempStream = new MemoryStream();
//apanha o codificador e o fluxo de codificao
DESCryptoServiceProvider encryptor = new DESCryptoServiceProvider();
CryptoStream encryptionStream = new CryptoStream(tempStream, encryptor.CreateDecryptor(key, iv),
CryptoStreamMode.Write);
//dado de encriptacao
encryptionStream.Write(sourceDataBytes, 0,sourceDataBytes.Length);
encryptionStream.FlushFinalBlock();
//poe o byte no array
byte[] encryptedDataBytes = tempStream.GetBuffer();
//converte o dado de encriptacao para string
return Convert.ToBase64String(encryptedDataBytes,0,(int)tempStream.Length);
}
catch
{
throw new StringEncritacaoExcepion("Incapaz de encriptrar dados");
}
//
// TODO: Add constructor logic here
//
}
public static string Decriptacao(string sourceData)
{
//define a chave inicializacao valores vecto
byte[] key = new byte[] { 1,2,3,4,5,6,7,8 };
byte[] iv = new byte []{ 1,2,3,4,5,6,7,8 };
try
{
//convert o dado para array de byte
byte[] encryptedDataBytes = Convert.FromBase64String(sourceData);
//apanha o codigo do fluxo memoria e enche
MemoryStream tempStream = new MemoryStream(encryptedDataBytes, 0, encryptedDataBytes.Length);
//apanha o decriptador e decriptar o fluxo
DESCryptoServiceProvider decryptor = new DESCryptoServiceProvider();
CryptoStream decryptionStream = new CryptoStream(tempStream, decryptor.CreateDecryptor(key, iv), CryptoStreamMode.Read);
//desicriptar
StreamReader allDataReader = new StreamReader(decryptionStream);
return allDataReader.ReadToEnd();
}
catch
{
throw new StringEncritacaoExcepion("Impossivel desencriptar dados.");
}
}
}
}
Спасибо