`
bulote
  • 浏览: 1385599 次
文章分类
社区版块
存档分类
最新评论

ASP.NET中加密与解密QueryString的方法

 
阅读更多

我们知道,在aso,net中两个页面中传值,可以用querystring的方法,可是用它并不安全,稍有不慎,会把传送的信息参数的值完全暴露在URL上,多么可怕啊!

<wbr></wbr>

方法一:把表单提交方式改为post

get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。

post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。

<wbr></wbr>

<wbr></wbr>

方法二:代码加密:

 

1.发送方加密。

Response.Redirect("DetailInfo.aspx?id=" + Convert.ToBase64String(System.Text.Encoding.Default.GetBytes("sp10006")).Replace("+","% 2B")); (中间无空格)

  

2.接收方解密。

string ID = System.Text.Encoding.Default.GetString(Convert.FromBase64String(Request.QueryString["id"].ToString().Replace("+","% 2B")));

<wbr></wbr>

<wbr></wbr>

在使用 System.Convert.FromBase64String<wbr><wbr>解密时会报异常:Base-64 字符数组的无效长度<wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr></wbr></wbr>

原理:

加密字符串中的加好“+”在传参时会变成空格“ ”,所以在解密时字符串就无效了

例如:

<wbr><wbr><wbr><wbr> 加密字符串:dN8b8FHDK6lEz2uneeUZk+O/rrHBzaWT</wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr> 传参后变成:dN8b8FHDK6lEz2uneeUZk O/rrHBzaWT</wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr> 解密时:不能识别空格:抛FormatException异常</wbr></wbr></wbr></wbr>

<wbr></wbr>

<wbr></wbr>

<wbr></wbr>

解决方案:

在Convert.ToBase64String()<wbr><wbr>加密后<wbr><wbr> 使用String.Replace("+", "% 2B")将<strong><span style="color:#ed1c24; font-size:20px">加号替换为编码,</span></strong></wbr></wbr></wbr></wbr>

然后再作为参数传给另一页面传递,这样页面在提取参数时才会将“+”解码为加号

例如:

<wbr><wbr><wbr><wbr> 加密字符串:dN8b8FHDK6lEz2uneeUZk+O/rrHBzaWT</wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr> 替换后:dN8b8FHDK6lEz2uneeUZk+O/rrHBzaWT</wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr> 传参后也是:dN8b8FHDK6lEz2uneeUZk+O/rrHBzaWT</wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr> 解密时:程序把"+"识别为加号<wbr><wbr> 解密成功</wbr></wbr></wbr></wbr></wbr></wbr>

分享到:
评论

相关推荐

    基于ASP.NET实现的QueryString进行安全加密处理类库函数

    3. **参数提取与加密**:从QueryString中提取需要加密的参数,然后使用选择的加密算法进行加密。加密过程应该包括填充、初始化向量(IV)等步骤,以增强安全性。 4. **结果编码**:加密后的结果通常包含二进制数据...

    ASP.NET面试题

    在 ASP.NET 中,可以使用多种方法来传递变量,例如使用 QueryString、Session 变量、Server.Transfer 等方法。这些方法可以根据实际需求选择合适的方法。 八、浏览器地址栏传值 在使用浏览器地址栏传值时,需要...

    asp.net开发常用整理集合

    #### 三、加密解密 - **DotNet密码加密技术**: - **MD5加密**: - 优点:计算速度快。 - 缺点:不可逆,不适合用于需要解密的场景。 - **AES加密**: - 优点:支持加密和解密,安全性高。 - 缺点:相比MD5...

    ASP.NET资源链接大楼

    7. **加密与解密**:ASP.NET提供了加密解密的类库,如System.Security.Cryptography,可用于保护敏感数据。 8. **QueryString管理**:可以方便地读取和操作URL中的查询字符串参数。 9. **验证控件**:ASP.NET包含...

    ASP.NET开发实战宝典源代码(1~13章)

    - 加密和解密,如使用ASP.NET的机器密钥 - 防止跨站脚本攻击(XSS)和跨站请求伪造(CSRF) 8. **第八章:状态管理** - Application状态、Session状态、Cookie和Viewstate的使用场景 - TempData和QueryString的...

    asp.net知识总结.doc

    在ASP.NET中,有两种主要方法实现页面重定向:`Response.Redirect()`和`Server.Transfer()`。`Response.Redirect("Default2.aspx")`会告诉浏览器去请求一个新的URL("Default2.aspx"),客户端会看到一个新的HTTP...

    ASP.Net.技巧收集.pdf

    加密解密 - **加密**: - **定义**: 将明文数据转换为密文的过程。 - **常见算法**: MD5、SHA、AES等。 - **解密**: - **定义**: 将密文数据还原为明文的过程。 - **依赖**: 加密使用的密钥或算法。 #### 5. ...

    《ASP.NET课程设计案例精编》-郝思嘉-源代码-3534

    6. **安全性**:身份验证、授权、加密解密、防止跨站脚本攻击(XSS)和跨站请求伪造(CSRF)等安全措施。 7. **AJAX技术**:利用UpdatePanel、jQuery AJAX或ASP.NET AJAX进行异步更新,提升用户体验。 8. **部署与...

    c# Web常用工具类、asp.net常用类

    在.NET框架中,C#是一种广泛使用的编程语言,尤其在Web开发领域,它与ASP.NET框架结合,提供了强大的功能和便利性。标题提到的"C# Web常用工具类、asp.net常用类"指的是开发者们在构建Web应用程序时经常会用到的一些...

    地址加密程序 asp程序

    在"网址加密解密"这个文件中,可能包含了实现这些功能的ASP源代码。这个文件应该包含加密URL的函数和解密URL的函数。加密函数可能会接收原始URL,进行编码和加密,然后返回加密后的URL字符串。解密函数则会接收加密...

    .net常用的技术介绍

    根据提供的文件信息,以下是对提及的...以上内容涵盖了.NET中的一些常用技术点,包括页面间传参、数据库操作、加密解密、DataGrid控件使用以及其他实用功能。这些技术对于开发高质量、安全可靠的.NET应用程序至关重要。

    asp学习心得:Asp深度揭密

    这些组件可以是Microsoft提供的,也可以是第三方开发的,它们提供了更丰富的功能,如邮件发送、数据库连接、加密解密等。 学习ASP的过程中,理解如何通过URL传递变量以及在ASP页面中如何接收和处理这些变量是基础...

    Asp组件vbdll session request等

    通过注册VBDLL到服务器,然后在ASP页面中引用,就可以调用其中的方法和属性,实现更复杂的功能,比如数据库操作、加密解密、文件处理等。 在实际应用中,开发人员可能会编写一个VBDLL来处理特定的业务逻辑,例如...

    ASP源码—最新天气预报查询.zip

    5. **服务器端组件**:ASP支持多种服务器端组件,如`Server.CreateObject`可以实例化COM组件,用于扩展功能,比如发送邮件、加密解密等。在天气查询系统中,可能使用了某种组件来处理特定任务。 6. **错误处理**:...

    C#编程经验技巧宝典

    88 &lt;br&gt;0136 如何进行文本加密与解密 88 &lt;br&gt;0137 如何区别0、空字符串、Null、Empty和Nothing 89 &lt;br&gt;0138 从字符串中分离文件路径、文件名及扩展名 89 &lt;br&gt;0139 如何批量替换某一类字符串 89...

    Cookie注入.docx

    * 不要在Cookie中保存没有经过加密的或者容易被解密的敏感信息 * 对从客户端取得的Cookie信息进行严格校验 * 记录非法的Cookie信息进行分析,并根据这些信息对系统进行攻击 * 使用SSL/TLS来传递Cookie信息 * 指明...

Global site tag (gtag.js) - Google Analytics