(c#加密)血迹之术-不可破解的密码
首先这个是学习Msdn讲座的并非原创:- -但是分享下
不可破解的加密只要保证加密的key不泄露,就不会被破解(据讲课的大大说这是数学证明不可以破解的)
using System;
using System.Text;
using System.Security.Cryptography;

class OTP_XOR
{
static void Main(string[] args)
{
Console.Write("Enter plaintext: ");
StringBuilder plaintext =
new StringBuilder(Console.ReadLine());
RandomNumberGenerator rng =
new RNGCryptoServiceProvider();
byte[] key = new Byte[plaintext.ToString().Length];

//--下面这里我修改了下,首先保证非0数据出现其次保证和原始数据相同咯- -看过原文的不要误会哈~~
rng.GetNonZeroBytes(key);
StringBuilder ciphertext =
EncryptDecrypt(plaintext, key);
Console.WriteLine("ciphertext: {0}",
ciphertext);

StringBuilder recoveredplaintext =
EncryptDecrypt(ciphertext, key);
Console.WriteLine("recovered plaintext: {0}",
recoveredplaintext);

Console.Read();
}
/// <summary>
/// 加密函数-可以反复用-这个函数的幽默点就在--^这里由于[原始数据^随机加密数据^随机加密数据=原始数据]
/// </summary>
/// <param name="data_in"></param>
/// <param name="key"></param>
/// <returns></returns>
static StringBuilder EncryptDecrypt(
StringBuilder data_in,
byte [] key)
{
StringBuilder data_oput =
new StringBuilder(data_in.ToString());
for (int index=0; index<data_in.Length; index++)
{
int character =
((int)data_in[index] ^ key[index]);
data_oput[index] = (char)character;
}
return data_oput;
}
}
顺便这是我处猪的第一帖
不可破解的加密代码下载
不可破解的加密只要保证加密的key不泄露,就不会被破解(据讲课的大大说这是数学证明不可以破解的)
using System;
using System.Text;
using System.Security.Cryptography;
class OTP_XOR
{
static void Main(string[] args)
{
Console.Write("Enter plaintext: ");
StringBuilder plaintext =
new StringBuilder(Console.ReadLine());
RandomNumberGenerator rng =
new RNGCryptoServiceProvider();
byte[] key = new Byte[plaintext.ToString().Length];

//--下面这里我修改了下,首先保证非0数据出现其次保证和原始数据相同咯- -看过原文的不要误会哈~~
rng.GetNonZeroBytes(key);
StringBuilder ciphertext =
EncryptDecrypt(plaintext, key);
Console.WriteLine("ciphertext: {0}",
ciphertext);
StringBuilder recoveredplaintext =
EncryptDecrypt(ciphertext, key);
Console.WriteLine("recovered plaintext: {0}",
recoveredplaintext);
Console.Read();
}
/// <summary>
/// 加密函数-可以反复用-这个函数的幽默点就在--^这里由于[原始数据^随机加密数据^随机加密数据=原始数据]
/// </summary>
/// <param name="data_in"></param>
/// <param name="key"></param>
/// <returns></returns>
static StringBuilder EncryptDecrypt(
StringBuilder data_in,
byte [] key)
{
StringBuilder data_oput =
new StringBuilder(data_in.ToString());
for (int index=0; index<data_in.Length; index++)
{
int character =
((int)data_in[index] ^ key[index]);
data_oput[index] = (char)character;
}
return data_oput;
}
}
顺便这是我处猪的第一帖
不可破解的加密代码下载


浙公网安备 33010602011771号