如何加密id querystring参数

时间:2019-06-25 14:17:50

标签: c# asp.net-mvc cryptography

我需要发送经过加密的“ @id”参数(在浏览器搜索栏上),然后解密id以从“编辑”视图中获取id的值。如何使用AES密码学。

public ActionResult Edit(int? id)
{
    return view(model);
}

2 个答案:

答案 0 :(得分:1)

您无法加密和解密URL中查询字符串参数中的参数。如果要在客户端浏览器和主机系统之间传递参数,则必须将参数埋入主机和客户端之间的消息传递内容中,同时通过HTTPS对整个消息传递进行加密。

答案 1 :(得分:0)

您可以按照以下步骤操作:

步骤1: 在项目中创建一个新类,然后从This Link复制粘贴代码。

步骤2:  立即构建项目

第3步:

在页面(视图)顶部放置MyExtension名称空间

@Html.EncodedActionLink(item.Name, "YourActionName", "YourControllerName", new { id = item.ID }, null)

第4步:

[EncryptedActionParameter]
public ActionResult Edit(int? id)
{
    return view(model);
}

已编辑: 完成上述步骤后,我发现了解密问题,并进行了更改。因此,您需要将byte[] IV = { 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 };中的byte[] IV = { 55, 34, 87, 64, 87, 195, 54, 21 };更改为Decrypt,并将{{1}中的Encrypt方法更改为{{1} }类。