C#学习教程:c#.net中的简单加密算法后来我也想解密。我尝试了以下但它没有进行任何加密。有人建议任何简单的加密算法吗?fileStream=store.OpenFile(strFilePath,FileMode.Open,FileAccess.Read);strEncryptedFileStream=Encoding.Unicode.GetBytes(fileStream.ToString()).ToString();使用AES。这是一个辅助类。使用“简单”没有意义,换句话说,容易破解加密。您要么希望人们能够破解它,要么您不想这样做。选择众所周知且经过测试的加密标准。如果没有,您可以修改以下示例以满足您的需要。使用系统;使用System.IO;使用System.Security.Cryptography;使用系统文本;使用系统诊断;namespaceCommon.Cryptography{//////AES是一种对称的256位加密算法。///阅读更多:http://en.wikipedia.org/wiki/Advanced_Encryption_Standard///publicstaticclassAES{privateconststring_SALT="g46dzQ80";私有常量字符串_INITVECTOR="OFRna74m*aze01xY";私有静态字节[]_saltBytes;私有静态字节[]_initVectorBytes;静态AES(){_saltBytes=Encoding.UTF8.GetBytes(_SALT);_initVectorBytes=Encoding.UTF8.GetBytes(_INITVECTOR);}//////用AES加密字符串//////要加密的文本///要加密的密码///要用盐加密///需要16个ASCII字符长///An加密字符串publicstaticstringEncrypt(stringplainText,stringpassword,stringsalt=null,stringinitialVector=null){returnConvert.ToBase64String(EncryptToBytes(plainText,password,盐,初始向量));}//////用AES加密字符串//////要加密的文本///要加密的密码///要用盐加密///需要16个ASCII字符长///An加密字符串publicstaticbyte[]EncryptToBytes(stringplainText,stringpassword,stringsalt=null,stringinitialVector=null){byte[]plainTextBytes=Encoding.UTF8.GetBytes(plainText);返回EncryptToBytes(纯文本字节、密码、盐、初始向量);}//////用AES加密字符串//////要加密的字节///要加密的密码///要用盐加密///需要16个ASCII字符长///An加密字符串publicstaticbyte[]EncryptToBytes(byte[]plainTextBytes,stringpassword,stringsalt=null,stringinitialVector=null){intkeySize=256;byte[]initialVectorBytes=string.IsNullOrEmpty(initialVector)?_initVectorBytes:Encoding.UTF8.GetBytes(initialVector);byte[]saltValueBytes=string.IsNullOrEmpty(盐)?_saltBytes:Encoding.UTF8.GetBytes(盐);byte[]keyBytes=newRfc2898DeriveBytes(密码,saltValueBytes).GetBytes(keySize/8);使用(RijndaelManagedsymmetricKey=newRijndaelManaged()){symmetricKey.Mode=CipherMode.CBC;使用(ICryptoTransform加密器=symmetricKey.CreateEncryptor(keyBytes,initialVectorBytes)){使用(MemoryStreammemStream=newMemoryStream()){使用(CryptoStreamcryptoStream=newCryptoStream(memStream,加密器,CryptoStreamMode.Write)){cryptoStream.Write(plainTextBytes,0,plainTextBytes.Length);cryptoStream.FlushFinalBlock();返回memStream.ToArray();}}}}}//////解密AES加密的字符串。//////要解密的文本///用于解密的密码///用于解密的盐///需要16个ASCII字符长///解密的字符串publicstaticstringDecrypt(stringcipherText,stringpassword,字符串salt=null,字符串initialVector=null){byte[]cipherTextBytes=Convert.FromBase64String(cipherText.Replace('','+'));返回解密(cipherTextBytes,密码,盐,initialVector)。TrimEnd('');}//////解密AES加密的字符串。//////要解密的文本///用于解密的密码///用于解密的盐///需要16个ASCII字符长///解密的字符串publicstaticstringDecrypt(byte[]cipherTextBytes,字符串密码,字符串salt=null,字符串initialVector=null){intkeySize=256;byte[]initialVectorBytes=string.IsNullOrEmpty(initialVector)?_initVectorBytes:Encoding.UTF8.GetBytes(initialVector);byte[]saltValueBytes=string.IsNullOrEmpty(salt)?_saltBytes:Encoding.UTF8.GetBytes(盐);byte[]keyBytes=newRfc2898DeriveBytes(密码,saltValueBytes).GetBytes(keySize/8);byte[]plainTextBytes=newbyte[cipherTextBytes.Length];使用(RijndaelManagedsymmetricKey=newRijndaelManaged()){symmetricKey.Mode=CipherMode.CBC;使用(ICryptoTransformdecryptor=symmetricKey.CreateDecryptor(keyBytes,initialVectorBytes)){使用(MemoryStreammemStream=newMemoryStream(cipherTextBytes)){使用(CryptoStreamcryptoStream=newCryptoStream(memStream,decryptor,CryptoStreamMode.Read)){intbyteCount=cryptoStream.Read(plainTextBytes,0,plainTextBytes.Length);返回Encoding.UTF8.GetString(plainTextBytes,0,byteCount);}}}}}}}您的代码中没有任何内容可以对其进行加密,您只需将其转换为Unicode。你可以看看这个问题,它提供了一个很好的C#加密示例。Enconding方法涉及文本编码(UTF-8、ANSI等),你应该使用加密算法,有几种方法可以做到这一点,一个简单的例子是使用XOR加密。看到这个:stringXorEncryptDecryptText(stringstringText,stringstringKey){//接收进程加密结果的变量。字符串stringNewText="";//首先我们计算两个字符串的大小差异。intdiff=(stringText.Length-stringKey.Length);//如果我们将stringKey与XORstringText的大小相同,则不会发生错误。if(diff>0){//我们计算其余部分以及我们将stringKey重复到相同大小的次数。intcont=(int)diff/stringKey.Length;intresto=diff%stringKey.Length;字符串stringKeyAux=stringKey;//此时stringText连接stringKey大小相等。对于(inti=0;i
