|
知识路径: > 电子商务系统程序设计基础 > 电子商务系统建设 > 电子商务系统安全设计 > 安全措施设计 >
|
相关知识点:8个
|
|
|
|
用户密码等信息是保密性要求非常高的信息,因此,即使密码保存在数据库中,也要对密码进行加密,将密码以密文的形式存放在数据库中,以防止密码泄露。
|
|
|
数据加密的方法有两种:双向加密和单向加密。双向加密是指数据既能被加密也能被解密。单向加密是指数据只能加密,而不能被解密;数据一旦被转换为密文之后,无论采用什么方法都无法还原为最初的数据。单向加密的优点就在于:即使密文被泄露,也不能理解这些密文信息的真正含义。
|
|
|
单向加密一般所采用的方法是哈希算法,哈希算法是将任意长度的二进制值映射为固定长度的较小二进制值,这个二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。MD5是最常用的哈希算法,也是采用单向加密的加密算法,MD5有两个非常重要的特性:第一是任意两段不同的数据,加密之后的密文也是不相同的;第二是任意一段数据,经过加密以后,其结果永远是相同的。
|
|
|
C#提供了有关MD5哈希算法的类——MD5CryptoServiceProvider。MD5CryptoService Provider类位于System.Security.Cryptography命名空间中,作用是使用加密服务提供程序提供的方法完成对输入数据MD5哈希值的计算。计算哈希值的方法为:
|
|
|
|
此方法只能接受byte型数组作为最初的原始数据,输出的密文数据也是byte型数组。因此,在对字符串加密之前,首先需将这些字符串转化为byte型数组(使用UTF8Encoding类的GetBytes方法)。加密方法的程序如下:
|
|
|
|
用户注册时,调用加密方法将密码加密,将密文密码保存在数据库中。用户登录时,同样也调用该方法对用户输入的密码进行加密得到密文密码,然后再与数据库中的密文密码进行比对,以此判断用户的合法性。
|
|
|