C#PHPAES256CBC加密嗨,我正在尝试使用PHP和AES256CBC模式加密我服务器上的文件/字符串,因为字符串以“0”开头我可以很容易地从AES添加的内容中删除填充,但我不能删除文件,因为其中一些包含空字节。在发送数据之前,我将其编码为base64字符串。这是我的C#解密函数internalstaticbyte[]__AES_DECRYPT(byte[]input,string_key,string_iv){varmyRijndael=newRijndaelManaged(){Padding=PaddingMode.Zeros,Mode=CipherMode.CBC,KeySize=256,BlockSize=256};byte[]key=Encoding.ASCII.GetBytes(_key);byte[]iv=Encoding.ASCII.GetBytes(_iv);vardecryptor=myRijndael.CreateDecryptor(key,iv);varsEncrypted=输入;varfromEncrypt=newbyte[sEncrypted.Length];varmsDecrypt=newMemoryStream(sEncrypted);varcsDecrypt=newCryptoStream(msDecrypt,decryptor,CryptoStreamMode.Read);csDecrypt.Read(fromEncrypt,0,fromEncrypt.Length);来自加密;这个函数也适用于字符串和字节。我认为PHP加密函数对文件是错误的,但对字符串有效。函数加密($str){$key='keygoeshere';$iv="ivgoeshere";$str=mcrypt_encrypt(MCRYPT_RIJNDAEL_256,$key,$str,MCRYPT_MODE_CBC,$iv);//$str=str_replace("","",$str);这适用于字符串但不适用于文件。返回base64_encode($str);如果您不想更改为其他形式的填充,只需在文件内容末尾附加一个1字节,解密后删除任何尾随空值,然后附加1字节。您不会意外删除属于该文件的任何0字节。以上就是C#学习教程的全部内容:C#PHPAES256CBC加密分享。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
