返回首页

加密/解密算法为我的项目:嗨!
我需要为我的项目的加密/解密算法。应该加密给定值,其中可能包含两个字母以及数字小字符也应该能够解密

我应该使用哪种算法

感谢您的帮助! | keyrun maharjan:CPallini

回答

评论会员:游客 时间:2012/02/06
漂亮得多任何加密方案可以处理这一要求。这是什么吗?如果它是本地或基于密码的加密(即是始终存在的关键或钥匙扣),你应该使用像TripleDES对称的计划。如果它传输的是,你应该使用1如RSA公共密钥方案1对称加密密钥,它是那么的数据(大部分用于加密,除非数据是总是小在这种情况下,RSA加密的成本可能是足够小你不关心)。如果它的功课是为出现的情况下,你应该使用一些它已经被你的课程中提到的1良好的加密方案,除非你喜欢说明你的老师为什么您​​选择的是更合适的感觉
。撒旦辛格
评论会员:游客 时间:2012/02/06
,喜KeyrunPLZ复制和粘贴算法写在下面,并调用它。将罚款任何问题联系REMOVED@gmail.com的问候,辛格撒旦codeprelang="c#"spanclass="code-keyword"using/spanSystem;spanclass="code-keyword"using/spanSystem.Data;spanclass="code-keyword"using/spanSystem.Configuration;spanclass="code-keyword"using/spanSystem.Web;spanclass="code-keyword"using/spanSystem.Web.Security;spanclass="code-keyword"using/spanSystem.Web.UI;spanclass="code-keyword"using/spanSystem.Web.UI.WebControls;spanclass="code-keyword"using/spanSystem.Web.UI.WebControls.WebParts;spanclass="code-keyword"using/spanSystem.Web.UI.HtmlControls;spanclass="code-keyword"using/spanSystem.IO;spanclass="code-keyword"using/spanSystem.Text;spanclass="code-keyword"using/spanSystem.Security.Cryptography; spanclass="code-keyword"namespace/spanMSIS.SPH.Common{ spanclass="code-keyword"public/spanspanclass="code-keyword"class/spanEncryptionDecryption{ spanclass="code-keyword"private/spanspanclass="code-keyword"static/spanspanclass="code-keyword"string/spanEncrypt(spanclass="code-keyword"string/spanplainText,spanclass="code-keyword"string/spanpassPhrase,spanclass="code-keyword"string/spansaltValue,spanclass="code-keyword"string/spanhashAlgorithm,spanclass="code-keyword"int/spanpasswordIterations,spanclass="code-keyword"string/spaninitVector,spanclass="code-keyword"int/spankeySize){ spanclass="code-comment"///spanspanclass="code-comment"Convertstringsintobytearrays./spanspanclass="code-comment"///spanspanclass="code-comment"LetusassumethatstringsonlycontainASCIIcodes./spanspanclass="code-comment"///spanspanclass="code-comment"IfstringsincludeUnicodecharacters,useUnicode,UTF7,orUTF8/spanspanclass="code-comment"///spanspanclass="code-comment"encoding./spanspanclass="code-keyword"byte/span[]initVectorBytes=spanclass="code-keyword"null/span;initVectorBytes=Encoding.ASCII.GetBytes(initVector); spanclass="code-keyword"byte/span[]saltValueBytes=spanclass="code-keyword"null/span;saltValueBytes=Encoding.ASCII.GetBytes(saltValue); spanclass="code-comment"///spanspanclass="code-comment"Convertourplaintextintoabytearray./spanspanclass="code-comment"///spanspanclass="code-comment"LetusassumethatplaintextcontainsUTF8-encodedcharacters./spanspanclass="code-keyword"byte/span[]plainTextBytes=spanclass="code-keyword"null/span;plainTextBytes=Encoding.UTF8.GetBytes(plainText); PasswordDeriveBytespassword=spanclass="code-keyword"default/span(PasswordDeriveBytes);password=spanclass="code-keyword"new/spanPasswordDeriveBytes(passPhrase,saltValueBytes,hashAlgorithm,passwordIterations); spanclass="code-comment"///spanspanclass="code-comment"Usethepasswordtogeneratepseudo-randombytesfortheencryption/spanspanclass="code-comment"///spanspanclass="code-comment"key.Specifythesizeofthekeyinbytes(insteadofbits)./spanspanclass="code-keyword"byte/span[]keyBytes=spanclass="code-keyword"null/span;keyBytes=password.GetBytes(keySize/spanclass="code-digit"8/span); spanclass="code-comment"///spanspanclass="code-comment"CreateuninitializedRijndaelencryptionobject./spanRijndaelManagedsymmetricKey=spanclass="code-keyword"default/span(RijndaelManaged);symmetricKey=spanclass="code-keyword"new/spanRijndaelManaged(); spanclass="code-comment"///spanspanclass="code-comment"ItisreasonabletosetencryptionmodetoCipherBlockChaining/spanspanclass="code-comment"///spanspanclass="code-comment"(CBC).Usedefaultoptionsforothersymmetrickeyparameters./spansymmetricKey.Mode=CipherMode.CBC; spanclass="code-comment"///spanspanclass="code-comment"Generateencryptorfromtheexistingkeybytesandinitialization/spanspanclass="code-comment"///spanspanclass="code-comment"vector.Keysizewillbedefinedbasedonthenumberofthekey/spanspanclass="code-comment"///spanspanclass="code-comment"bytes./spanICryptoTransformencryptor=spanclass="code-keyword"default/span(ICryptoTransform);encryptor=symmetricKey.CreateEncryptor(keyBytes,initVectorBytes); spanclass="code-comment"///spanspanclass="code-comment"Definememorystreamwhichwillbeusedtoholdencrypteddata./spanMemoryStreammemoryStream=spanclass="code-keyword"default/span(MemoryStream);memoryStream=spanclass="code-keyword"new/spanMemoryStream(); spanclass="code-comment"///spanspanclass="code-comment"Definecryptographicstream(alwaysuseWritemodeforencryption)./spanCryptoStreamcryptoStream=spanclass="code-keyword"default/span(CryptoStream);cryptoStream=spanclass="code-keyword"new/spanCryptoStream(memoryStream,encryptor,CryptoStreamMode.Write);spanclass="code-comment"///spanspanclass="code-comment"Startencrypting./spancryptoStream.Write(plainTextBytes,spanclass="code-digit"0/span,plainTextBytes.Length); spanclass="code-comment"///spanspanclass="code-comment"Finishencrypting./spancryptoStream.FlushFinalBlock(); spanclass="code-comment"///spanspanclass="code-comment"Convertourencrypteddatafromamemorystreamintoabytearray./spanspanclass="code-keyword"byte/span[]cipherTextBytes=spanclass="code-keyword"null/span;cipherTextBytes=memoryStream.ToArray(); spanclass="code-comment"///spanspanclass="code-comment"Closebothstreams./spanmemoryStream.Close();cryptoStream.Close(); spanclass="code-comment"///spanspanclass="code-comment"Convertencrypteddataintoabase64-encodedstring./spanspanclass="code-keyword"string/spancipherText=spanclass="code-keyword"null/span;cipherText=Convert.ToBase64String(cipherTextBytes); spanclass="code-comment"///spanspanclass="code-comment"Returnencryptedstring./spanspanclass="code-keyword"return/spancipherText;} spanclass="code-keyword"private/spanspanclass="code-keyword"static/spanspanclass="code-keyword"string/spanDecrypt(spanclass="code-keyword"string/spancipherText,spanclass="code-keyword"string/spanpassPhrase,spanclass="code-keyword"string/spansaltValue,spanclass="code-keyword"string/spanhashAlgorithm,spanclass="code-keyword"int/spanpasswordIterations,spanclass="code-keyword"string/spaninitVector,spanclass="code-keyword"int/spankeySize){ spanclass="code-comment"///spanspanclass="code-comment"Convertstringsdefiningencryptionkeycharacteristicsintobyte/spanspanclass="code-comment"///spanspanclass="code-comment"arrays.LetusassumethatstringsonlycontainASCIIcodes./spanspanclass="code-comment"///spanspanclass="code-comment"IfstringsincludeUnicodecharacters,useUnicode,UTF7,orUTF8/spanspanclass="code-comment"///spanspanclass="code-comment"encoding./spanspanclass="code-keyword"byte/span[]initVectorBytes=spanclass="code-keyword"null/span;initVectorBytes=Encoding.ASCII.GetBytes(initVector); spanclass="code-keyword"byte/span[]saltValueBytes=spanclass="code-keyword"null/span;saltValueBytes=Encoding.ASCII.GetBytes(saltValue); spanclass="code-comment"///spanspanclass="code-comment"Convertourciphertextintoabytearray./spanspanclass="code-keyword"byte/span[]cipherTextBytes=spanclass="code-keyword"null/span;cipherTextBytes=Convert.FromBase64String(cipherText); spanclass="code-comment"///spanspanclass="code-comment"First,wemustcreateapassword,fromwhichthekeywillbe/spanspanclass="code-comment"///spanspanclass="code-comment"derived.Thispasswordwillbegeneratedfromthespecified/spanspanclass="code-comment"///spanspanclass="code-comment"passphraseandsaltvalue.Thepasswordwillbecreatedusing/spanspanclass="code-comment"///spanspanclass="code-comment"thespecifiedhashalgorithm.Passwordcreationcanbedonein/spanspanclass="code-comment"///spanspanclass="code-comment"severaliterations./spanPasswordDeriveBytespassword=spanclass="code-keyword"default/span(PasswordDeriveBytes);password=spanclass="code-keyword"new/spanPasswordDeriveBytes(passPhrase,saltValueBytes,hashAlgorithm,passwordIterations); spanclass="code-comment"///spanspanclass="code-comment"Usethepasswordtogeneratepseudo-randombytesfortheencryption/spanspanclass="code-comment"///spanspanclass="code-comment"key.Specifythesizeofthekeyinbytes(insteadofbits)./spanspanclass="code-keyword"byte/span[]keyBytes=spanclass="code-keyword"null/span;keyBytes=password.GetBytes(keySize/spanclass="code-digit"8/span); spanclass="code-comment"///spanspanclass="code-comment"CreateuninitializedRijndaelencryptionobject./spanRijndaelManagedsymmetricKey=spanclass="code-keyword"default/span(RijndaelManaged);symmetricKey=spanclass="code-keyword"new/spanRijndaelManaged(); spanclass="code-comment"///spanspanclass="code-comment"ItisreasonabletosetencryptionmodetoCipherBlockChaining/spanspanclass="code-comment"///spanspanclass="code-comment"(CBC).Usedefaultoptionsforothersymmetrickeyparameters./spansymmetricKey.Mode=CipherMode.CBC; spanclass="code-comment"///spanspanclass="code-comment"Generatedecryptorfromtheexistingkeybytesandinitialization/spanspanclass="code-comment"///spanspanclass="code-comment"vector.Keysizewillbedefinedbasedonthenumberofthekey/spanspanclass="code-comment"///spanspanclass="code-comment"bytes./spanICryptoTransformdecryptor=spanclass="code-keyword"default/span(ICryptoTransform);decryptor=symmetricKey.CreateDecryptor(keyBytes,initVectorBytes); spanclass="code-comment"///spanspanclass="code-comment"Definememorystreamwhichwillbeusedtoholdencrypteddata./spanMemoryStreammemoryStream=spanclass="code-keyword"default/span(MemoryStream);memoryStream=spanclass="code-keyword"new/spanMemoryStream(cipherTextBytes); spanclass="code-comment"///spanspanclass="code-comment"Definememorystreamwhichwillbeusedtoholdencrypteddata./spanCryptoStreamcryptoStream=spanclass="code-keyword"default/span(CryptoStream);cryptoStream=spanclass="code-keyword"new/spanCryptoStream(memoryStream,decryptor,CryptoStreamMode.Read); spanclass="code-comment"///spanspanclass="code-comment"Sinceatthispointwedon'tknowwhatthesizeofdecrypteddata/spanspanclass="code-comment"///spanspanclass="code-comment"willbe,allocatethebufferlongenoughtoholdciphertext;/spanspanclass="code-comment"///spanspanclass="code-comment"plaintextisneverlongerthanciphertext./spanspanclass="code-keyword"byte/span[]plainTextBytes=spanclass="code-keyword"new/spanspanclass="code-keyword"byte/span[cipherTextBytes.Length]; spanclass="code-keyword"int/spandecryptedByteCount=spanclass="code-digit"0/span;decryptedByteCount=cryptoStream.Read(plainTextBytes,spanclass="code-digit"0/span,plainTextBytes.Length);  spanclass="code-comment"///spanspanclass="code-comment"Closebothstreams./spanmemoryStream.Close();cryptoStream.Close(); spanclass="code-comment"///spanspanclass="code-comment"Convertdecrypteddataintoastring./spanspanclass="code-comment"///spanspanclass="code-comment"LetusassumethattheoriginalplaintextstringwasUTF8-encoded./spanspanclass="code-keyword"string/spanplainText=spanclass="code-keyword"null/span;plainText=Encoding.UTF8.GetString(plainTextBytes,spanclass="code-digit"0/span,decryptedByteCount); spanclass="code-comment"///spanspanclass="code-comment"Returndecryptedstring./spanspanclass="code-keyword"return/spanplainText;} spanclass="code-keyword"public/spanspanclass="code-keyword"static/spanspanclass="code-keyword"string/spanEncryptValue(spanclass="code-keyword"string/spanstrString){spanclass="code-keyword"if/span(spanclass="code-keyword"string/span.IsNullOrEmpty(strString.Trim()))spanclass="code-keyword"return/spanspanclass="code-string""/spanspanclass="code-string""/span;spanclass="code-keyword"string/spanstrplainText=spanclass="code-keyword"null/span;spanclass="code-keyword"string/spanstrcipherText=spanclass="code-keyword"null/span; spanclass="code-keyword"string/spanstrpassPhrase=spanclass="code-keyword"null/span;spanclass="code-keyword"string/spanstrsaltValue=spanclass="code-keyword"null/span;spanclass="code-keyword"string/spanstrhashAlgorithm=spanclass="code-keyword"null/span;spanclass="code-keyword"int/spanintpasswordIterations=spanclass="code-digit"0/span;spanclass="code-keyword"string/spanstrinitVector=spanclass="code-keyword"null/span;spanclass="code-keyword"int/spanintkeySize=spanclass="code-digit"0/span; strplainText=strString;spanclass="code-comment"///spanspanclass="code-comment""Hello,World!-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890-=!@#$%^&*()_+[];,./<>?:'{}|\"'originalplaintext/spanstrpassPhrase=spanclass="code-string""/spanspanclass="code-string"Pas5pr@se"/span;spanclass="code-comment"///spanspanclass="code-comment"canbeanystring/spanstrsaltValue=spanclass="code-string""/spanspanclass="code-string"s@1tValue"/span;spanclass="code-comment"///spanspanclass="code-comment"canbeanystring/spanstrhashAlgorithm=spanclass="code-string""/spanspanclass="code-string"SHA1"/span;spanclass="code-comment"///spanspanclass="code-comment"canbe"MD5"/spanintpasswordIterations=spanclass="code-digit"2/span;spanclass="code-comment"///spanspanclass="code-comment"canbeanynumber/spanstrinitVector=spanclass="code-string""/spanspanclass="code-string"@1B2c3D4e5F6g7H8"/span;spanclass="code-comment"///spanspanclass="code-comment"mustbe16bytes/spanintkeySize=spanclass="code-digit"256/span;spanclass="code-comment"///spanspanclass="code-comment"canbe192or128/spanspanclass="code-comment"///spanspanclass="code-comment"Response.Write(String.Format("Plaintext:{0}",plainText))/spanspanclass="code-comment"///spanspanclass="code-comment"Response.Write("<br")/spanstrcipherText=Encrypt(strplainText,strpassPhrase,strsaltValue,strhashAlgorithm,intpasswordIterations,strinitVector,intkeySize); spanclass="code-comment"///spanspanclass="code-comment"Response.Write(String.Format("Encrypted:{0}",cipherText))/spanspanclass="code-comment"///spanspanclass="code-comment"Response.Write("<br")/span spanclass="code-keyword"return/spanstrcipherText;} spanclass="code-keyword"public/spanspanclass="code-keyword"static/spanspanclass="code-keyword"string/spanDecryptValue(spanclass="code-keyword"string/spanstrString){spanclass="code-keyword"if/span(spanclass="code-keyword"string/span.IsNullOrEmpty(strString.Trim()))spanclass="code-keyword"return/spanspanclass="code-string""/spanspanclass="code-string""/span;spanclass="code-keyword"string/spanstrplainText=spanclass="code-keyword"null/span;spanclass="code-keyword"string/spanstrcipherText=spanclass="code-keyword"null/span; spanclass="code-keyword"string/spanstrpassPhrase=spanclass="code-keyword"null/span;spanclass="code-keyword"string/spanstrsaltValue=spanclass="code-keyword"null/span;spanclass="code-keyword"string/spanstrhashAlgorithm=spanclass="code-keyword"null/span;spanclass="code-keyword"int/spanintpasswordIterations=spanclass="code-digit"0/span;spanclass="code-keyword"string/spanstrinitVector=spanclass="code-keyword"null/span;spanclass="code-keyword"int/spanintkeySize=spanclass="code-digit"0/span; strplainText=strString;spanclass="code-comment"///spanspanclass="code-comment""Hello,World!-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890-=!@#$%^&*()_+[];,./<>?:'{}|\"'originalplaintext/spanstrpassPhrase=spanclass="code-string""/spanspanclass="code-string"Pas5pr@se"/span;spanclass="code-comment"///spanspanclass="code-comment"canbeanystring/spanstrsaltValue=spanclass="code-string""/spanspanclass="code-string"s@1tValue"/span;spanclass="code-comment"///spanspanclass="code-comment"canbeanystring/spanstrhashAlgorithm=spanclass="code-string""/spanspanclass="code-string"SHA1"/span;spanclass="code-comment"///spanspanclass="code-comment"canbe"MD5"/spanintpasswordIterations=spanclass="code-digit"2/span;spanclass="code-comment"///spanspanclass="code-comment"canbeanynumber/spanstrinitVector=spanclass="code-string""/spanspanclass="code-string"@1B2c3D4e5F6g7H8"/span;spanclass="code-comment"///spanspanclass="code-comment"mustbe16bytes/spanintkeySize=spanclass="code-digit"256/span;spanclass="code-comment"///spanspanclass="code-comment"canbe192or128/spanspanclass="code-comment"///spanspanclass="code-comment"Response.Write(String.Format("Plaintext:{0}",plainText))/spanspanclass="code-comment"///spanspanclass="code-comment"Response.Write("<br")/spanstrcipherText=Decrypt(strplainText,strpassPhrase,strsaltValue,strhashAlgorithm,intpasswordIterations,strinitVector,intkeySize); spanclass="code-comment"///spanspanclass="code-comment"Response.Write(String.Format("Encrypted:{0}",cipherText))/spanspanclass="code-comment"///spanspanclass="code-comment"Response.Write("<br")/span spanclass="code-keyword"return/spanstrcipherText;} } }spanclass="code-keyword"<//spanspanclass="code-leadattribute"br</spanspanclass="code-keyword"//spanspanclass="code-attribute"br</spanspanclass="code-keyword"//spanspanclass="code-attribute"br</spanspanclass="code-keyword"//spanspanclass="code-attribute"br/span/pre/code
RaisKazi:感谢嘿撒旦的解决方案,它的工作,但它不是解决办法,我一直在寻找,加密值应减少变量没有想,如果我给"撒旦辛格那么它应该产生'satsgn"或类似的东西,但小于原来的大小
NBSP价值;

感谢!| keyrun maharjan:嘿撒旦的解决方案,感谢它的工作,但它不是解决问​​题的方法,我一直在寻找,加密值应减少变量没有想,如果我给"撒旦辛格,那么它应该产生"satsgn"或类似的东西,但小于原始大小的值
评论会员:。keyrunmaharjan 时间:2012/02/06
: |