在微软公司的 Microsoft. NET开发系统中,Microsoft. NET SDK提供了 System. Security. Cryptography命名空间,其中包含 MD5 Cypto Service Provider类,在该类中提供专门用于 MD5单向数据加密的解决方法,我们即是使用此方法类来实现 MD5加密。通过使用类中的方法 ComputeHash,可直接应用MD5算法,经过编程可以自定义加密函数来实现MD5的加密算法。

通信系统客户端加密流程流程图

(1)首先,用户在注册时,将用户名利用 MD5算法加密,得到加密后的用户名。然后再把用户名和密码串接,将串接后的值进行 MD5加密,得到加密后的口令文件。将加密后的用户名和口令文件存储在服务器端的数据库中。

(2)客户通过浏览器进行数据请求时,首先在浏览器端通过程序先将用户名利用 MD5算法加密,得到加密后的用户名。然后再把用户名和密码串接,将串接后的值进行 MD5加密,得到加密后的口令文件。将加密后得到的用户名和口令文件及服务器端生成的随机验证码数据发送到服务器端。

(3)用户提交表单,服务器端进行验证。

如果客户端传来的数据包中和服务器 (Server)端存储的经加密后的口令相同,并且随机数的值也对应相等,则服务器后向客户端指定,可以让客户端重新定向到下一步的数据传输。如果对应不能完成认证,刚提示用户重新输入相关信息。这样,就完成了对用户的身份认证过程。

实际应用中,我们可以通过调用函数,在客户端对用户名和用户密码进行加密,将得到的加密值传送到服务器端,和服务器上存储的加密后的值进行对比,得到服务器端返回结果,从而实现对信息传输过程中的保密。