文档介绍:WebQQ 密码 MD5 加密算法的 C# 实现应网友之邀为大家提供一下 WebQQ 的 MD5 加密算法,因为 MD5 是 WebQQ 模拟登录过程中最难的部分, 所以在这里不能不提及。本文只能提供 C# 的实现方法, 其他语言版本可以参照 C# 作适当的修改便可。要操作 MD5 , C# 中自带一个 MD5 类可供选择,相当方便。如果要自己写算法实现 MD5 也未曾不可,只是放着现成的类不用太浪费了。首先引用空间: using ; 先说说 WebQQ MD5 加密的方式,公式是这样的: md5(md5(hexchar2bin(md5(p)) +uin) +()); verify 是验证码, uin 就是那段\x0 的代码, p是密码至于为什么是这样, 作为菜鸟, 我也说不清, 懵里懵懂的给大家展示一下~!~ 只是用 firebu g 分析到的 Js 里面的算法大致就是这个意思。其中这里最关键的函数,就是 hexchar2bi n 了. 我们先来罗列一下基础的 MD5 函数吧,其实是 MD5 的标准算法,直接贴在下面了,将普通文本转换成 MD5 。 View Code /// <summary> /// 一次 md5 加密/// 02 /// </summary> /// <param name="md5_str"> 需要加密的文本</param> /// <returns></returns> public static string MD5_Encrypt( string md5_str) { md5 = (); byte [] bytes =(md5_str); byte [] bytes1 =puteHash(bytes); stringBuilder =new StringBuilder(); foreach (var item in bytes1) {(( "x" ).PadLeft( 2,'0' )); }return ().ToUpper(); } 再重载一次这个方法,以便能将字节数组也能转换成我们需要的 MD5 字符串 View Code /// <summary> /// 将字节流加密/// </summary> /// <param name="md5_bytes"> 需要加密的字节流</param> /// <returns></returns> private static string MD5_Encrypt( byte [] md5_bytes) { md5 =