QQ空间在5月31日抛弃了旧时的加密方式,使用了新的加密方式,下面就是java版的 2012QQ空间加密核心代码.
C# 版本地址:
http://blog.csdn.net/xiaolajiao958/article/details/7621750
代码需要优化的,大家自己优化.呵呵.
欢迎提供更好的建议.
public static final String HEXSTRING = "0123456789ABCDEF";
public static String md5(String originalText) throws Exception {
byte buf[] = originalText.getBytes("ISO-8859-1");
StringBuffer hexString = new StringBuffer();
String result = "";
String digit = "";
try {
MessageDigest algorithm = MessageDigest.getInstance("MD5");
algorithm.reset();
algorithm.update(buf);
byte[] digest = algorithm.digest();
for (int i = 0; i < digest.length; i++) {
digit = Integer.toHexString(0xFF & digest[i]);
if (digit.length() == 1) {
digit = "0" + digit;
}
hexString.append(digit);
}
result = hexString.toString();
} catch (Exception ex) {
result = "";
}
return result.toUpperCase();
}
public static String hexchar2bin(String md5str) throws UnsupportedEncodingException
{
ByteArrayOutputStream baos = new ByteArrayOutputStream(md5str.length() / 2);
for (int i = 0; i < md5str.length(); i = i + 2)
{
baos.write((HEXSTRING.indexOf(md5str.charAt(i)) << 4 |
HEXSTRING.indexOf(md5str.charAt(i + 1))));
}
return new String(baos.toByteArray(), "ISO-8859-1");
}
/**
*
* @param qq http://check.ptlogin2.qq.com/check?uin={0}&appid=15000101&r={1} 返回的第三个值
* @param password QQ密码
* @param verifycode 验证码
* @return 加密后的密码
* @throws UnsupportedEncodingException
* @throws Exception
*/
public static String GetPassword(String qq,String password, String verifycode) throws Exception{
String P = hexchar2bin(md5(password));
String U = md5(P + hexchar2bin(qq.replace("\\x", "").toUpperCase()));
String V = md5(U + verifycode.toUpperCase());
return V;
}
分享到:
相关推荐
最新Java模拟登陆QQ空间【2017-12-22】有效 代码在2017-12-22编写完成并测试通过! 功能: 1.获取QQ空间qzonetoken值 2.构造p参数加密方式getEncryption(QQ密码,QQ账号[16进制标识],验证码,false); 3.获取g_tk算法...
系统参数定义了加密算法的安全性和属性空间。管理员密钥则用于生成用户密钥,这些密钥与用户的属性集相关联。 2. **用户密钥生成器(User Key Generation, UKG)**:使用管理员密钥和用户的属性集,可以生成用户的...
【Java模拟QQ登录空间】是Java编程领域中的一个实践项目,主要目的是通过编程技术实现对QQ空间的模拟登录。这个项目对于学习Java网络编程、HTTP协议、JSON解析以及网络安全等多方面知识具有重要意义。 首先,Java是...
这篇博客主要探讨的是如何使用Java技术栈来构建一个类似于QQ空间的登录注册系统,并实现个人主页功能。在Java Web开发中,这样的应用通常基于经典的三层架构:表现层(JSP)、业务逻辑层(Servlet)和数据访问层。...
.NET平台也有自己的加密框架,即System.Security.Cryptography命名空间。它提供了对各种加密标准如AES、RSA、SHA等的实现。`.Net.txt`可能包含了.NET平台下实现的加密代码示例或指南。 对于Objective-C,它是Apple ...
7. **数据加密与安全**: 为了保护用户的隐私,系统的登录、传输过程可能采用了加密技术,如SSL/TLS协议,或者使用Java的加密库进行数据加密。 8. **状态管理与会话保持**: 为了实现用户登录状态的保持和不同页面间...
在IT行业中,加密技术是确保数据安全的重要手段之一...在实际应用中,通常会用RSA加密一个随机生成的对称密钥,然后用这个对称密钥去加密大量数据,这种方式称为混合加密。这种做法结合了RSA的安全性和对称加密的效率。
7. **安全机制**:考虑到隐私保护,JAVA-QQ2004可能会有加密传输和身份验证机制,确保用户的聊天内容和个人信息不被窃取。 8. **服务端架构**:与客户端对应的是强大的服务端架构,负责处理大量的并发连接和消息...
Java日历空间 JCalendarButton JCalendarButton是一个简单的java swing日历选择控件。它能够在日期输入框后面弹出一个日历。 网页搜索爬虫 BlueLeech BlueLeech是一个开源程序,它从指定的URL开始,搜索所有可用的...
Java日历空间 JCalendarButton JCalendarButton是一个简单的java swing日历选择控件。它能够在日期输入框后面弹出一个日历。 网页搜索爬虫 BlueLeech BlueLeech是一个开源程序,它从指定的URL开始,搜索所有可用的...
Java日历空间 JCalendarButton JCalendarButton是一个简单的java swing日历选择控件。它能够在日期输入框后面弹出一个日历。 网页搜索爬虫 BlueLeech BlueLeech是一个开源程序,它从指定的URL开始,搜索所有可用的...
Java日历空间 JCalendarButton JCalendarButton是一个简单的java swing日历选择控件。它能够在日期输入框后面弹出一个日历。 网页搜索爬虫 BlueLeech BlueLeech是一个开源程序,它从指定的URL开始,搜索所有可用的...
Java日历空间 JCalendarButton JCalendarButton是一个简单的java swing日历选择控件。它能够在日期输入框后面弹出一个日历。 网页搜索爬虫 BlueLeech BlueLeech是一个开源程序,它从指定的URL开始,搜索所有可用的...
Java日历空间 JCalendarButton JCalendarButton是一个简单的java swing日历选择控件。它能够在日期输入框后面弹出一个日历。 网页搜索爬虫 BlueLeech BlueLeech是一个开源程序,它从指定的URL开始,搜索所有可用的...
Java日历空间 JCalendarButton JCalendarButton是一个简单的java swing日历选择控件。它能够在日期输入框后面弹出一个日历。 网页搜索爬虫 BlueLeech BlueLeech是一个开源程序,它从指定的URL开始,搜索所有可用的...
Java日历空间 JCalendarButton JCalendarButton是一个简单的java swing日历选择控件。它能够在日期输入框后面弹出一个日历。 网页搜索爬虫 BlueLeech BlueLeech是一个开源程序,它从指定的URL开始,搜索所有可用的...
以上就是关于"java QQ聊天程序源代码"的一些关键知识点,虽然标题提到的是"java",但描述中明确指出是C#编写的,因此这里主要讨论的是C#相关的编程技术。对于文件列表中的`Client.java`,这可能是Java版本的客户端...
通过分析源码,我们可以深入理解各个功能的具体实现方式,学习如何利用Java语言和相关库构建聊天应用。 总的来说,这个Java聊天工具项目涵盖了Java GUI编程、网络通信、多线程、数据结构、事件处理、系统集成等多个...
在IT行业中,尤其是在网络安全和数据保护领域,RSA算法是一种广泛使用的非对称加密技术,用于数字签名、数据加密和解密。本项目涉及到C#语言实现的RSA工具类,包括读取不同格式的密钥文件(如PFX和CER)、进行签名...
Java日历空间 JCalendarButton JCalendarButton是一个简单的java swing日历选择控件。它能够在日期输入框后面弹出一个日历。 网页搜索爬虫 BlueLeech BlueLeech是一个开源程序,它从指定的URL开始,搜索所有可用的...