使用C#的POST方法使用数据进行PHP加密和解密

我正在尝试使用POST方法使用来自应用程序的密钥发送来加密字符串.POST方法发送加密密钥。但是脚本工作不正常请帮助我。

它不起作用的原因是你的填充是错误的。 PKCS7是重复填充长度的字节值(即如果填充2字节,则为00000010 00000010)。 它不是字符串值“0202”,似乎没有任何PHP函数正确执行此操作,所以我会使用一种不需要填充的操作模式。 OFB由c#和php都支持。

你不能使用固定IV。 对于cbc模式,它相当不安全,对于OFB来说,它是完全不安全的。 使用mcrypt_create_iv每次都获得一个新的随机数。 然后在发送时将IV添加到密文(它不需要加密)。 作为一个注释,你可能已经遇到的一个问题是php使用字符串而C#使用了byts来进行IV,你甚至可能无法获得正确的转换。 我可能会使用hex和函数来转换为/从中确定。

其次,您需要使用某些东西来检测人们何时篡改您的数据,否则他们可能会通过底层加密库中的错误代码/时间问题读取密文。 Hmacs运行良好, 这里支持php和c# 。 HMAC您的IV +密文消息并将输出添加到它。 另一方面,在相同数据上运行c#等效函数,然后比较HMAC值。 如果它们是相同的,那么你是安全的,如果没有,拒绝。