Java 2012QQ空间最新加密方式

本文提供了一套用于2012年QQ空间登录加密的Java实现方案,包括MD5加密方法及完整的密码加密流程。适用于对QQ空间登录机制感兴趣的开发者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

QQ空间在5月31日抛弃了旧时的加密方式,使用了新的加密方式,下面就是java版的 2012QQ空间加密核心代码. 

C# 版本地址:  http://blog.youkuaiyun.com/xiaolajiao958/article/details/7621750  

代码需要优化的,大家自己优化.呵呵. 

欢迎提供更好的建议. 

Java代码 
  1. public static final String HEXSTRING = "0123456789ABCDEF";  
  2.   
  3. public static String md5(String originalText) throws Exception {  
  4.     byte buf[] = originalText.getBytes("ISO-8859-1");  
  5.     StringBuffer hexString = new StringBuffer();  
  6.     String result = "";  
  7.     String digit = "";  
  8.   
  9.     try {  
  10.         MessageDigest algorithm = MessageDigest.getInstance("MD5");  
  11.         algorithm.reset();  
  12.         algorithm.update(buf);  
  13.   
  14.         byte[] digest = algorithm.digest();  
  15.   
  16.         for (int i = 0; i < digest.length; i++) {  
  17.             digit = Integer.toHexString(0xFF & digest[i]);  
  18.   
  19.             if (digit.length() == 1) {  
  20.                 digit = "0" + digit;  
  21.             }  
  22.   
  23.             hexString.append(digit);  
  24.         }  
  25.   
  26.         result = hexString.toString();  
  27.     } catch (Exception ex) {  
  28.         result = "";  
  29.     }  
  30.   
  31.     return result.toUpperCase();  
  32. }  
  33.   
  34. public static String hexchar2bin(String md5str) throws UnsupportedEncodingException   
  35. {  
  36.     ByteArrayOutputStream baos = new ByteArrayOutputStream(md5str.length() / 2);  
  37.   
  38.     for (int i = 0; i < md5str.length(); i = i + 2)  
  39.     {  
  40.         baos.write((HEXSTRING.indexOf(md5str.charAt(i)) << 4 |  
  41.                 HEXSTRING.indexOf(md5str.charAt(i + 1))));  
  42.     }  
  43.       
  44.     return new String(baos.toByteArray(), "ISO-8859-1");  
  45. }  
  46.   
  47. /** 
  48.  *  
  49.  * @param qq http://check.ptlogin2.qq.com/check?uin={0}&appid=15000101&r={1} 返回的第三个值 
  50.  * @param password QQ密码 
  51.  * @param verifycode 验证码 
  52.  * @return 加密后的密码 
  53.  * @throws UnsupportedEncodingException 
  54.  * @throws Exception 
  55.  */  
  56. public static String GetPassword(String qq,String password, String verifycode) throws Exception{  
  57.       
  58.     String P = hexchar2bin(md5(password));  
  59.     String U = md5(P + hexchar2bin(qq.replace("\\x""").toUpperCase()));  
  60.     String V = md5(U + verifycode.toUpperCase());  
  61.       
  62.     return V;  
  63. }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值