Code Bye

Cryptography.CryptographicException: 不正确的数据

 

比如现在有个地址:http://www.f508.com/MyAccountNew/ReturnRequest.aspx?OrdNo=20E50DA42B1B25BBC98EDA0338F8CC4A&OrdDate=E5B7126B84150C544D08F41CB718B43B2EEA79430890B367
假如用户修改了“=”后边加密后的参数,系统会报黄页
错误代码:异常详细信息: System.Security.Cryptography.CryptographicException: 不正确的数据。
源错误:
行 1542:
行 1543:            cs.Write(inputByteArray, 0, inputByteArray.Length);
行 1544:            cs.FlushFinalBlock();
行 1545:
行 1546:            //建立StringBuild对象,createDecrypt使用的是流对象,必须把解密后的文本变成流对象
/span>
现在我想实现如果用户修改了加密后参数,如果系统不能正确解密就做个跳转,不让它报黄页。
div id=”topic-extra-info”>

这种东西没必要做加密处理,用户知道了订单ID又如何?
引用 1 楼  的回复:

这种东西没必要做加密处理,用户知道了订单ID又如何?

业务逻辑需要,如果用户更改了订单号而不更改订单时间业务逻辑就乱了。


40分
你的解密后的Id的数据类型你应该知道吧,如果解密后id数据类型正确,就显示
解密后出来的数据出问题,报错什么的,直接跳转。
try
{
这里做正确解密显示
}
catch(Exception ex)
{
出错后跳转
}
其实最根本的就是不通过地址栏传值的方式,提交改为Post方式
你可以试想一下,即便是没有加密,订单?OrderId=999999,一个根本不存在的订单号,那你怎么处理,后台接受的也是正确的数字
因此,最根本就是不显示在地址栏,通过隐藏域的方式提交等
引用 4 楼  的回复:

其实最根本的就是不通过地址栏传值的方式,提交改为Post方式
你可以试想一下,即便是没有加密,订单?OrderId=999999,一个根本不存在的订单号,那你怎么处理,后台接受的也是正确的数字
因此,最根本就是不显示在地址栏,通过隐藏域的方式提交等

这两个参数是通过订单号对应的那行最后的一个按钮提交过来的,你说用post提交,那我form改成post提交到当前页面,所有的东西都post过来了,有必要么

你加密了,你要解密

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明Cryptography.CryptographicException: 不正确的数据