- 浏览: 84857 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
ssy341:
说的简单了点,和官网的文档差不多,多文件上传也不是很好,不过可 ...
jQuery插件AjaxFileUpload文件上传实现Javascript多文件上传功能 -
蓝凝幽偌:
有没有jar包?
org.apache.commons.net.ftp.FTPClient 的简单用法 -
tinguo002:
在这里缓缓走过,很为楼主钻研精神感动,也感谢楼主分享。
关于Struts2资源文件的配置
/**
* 加密传输时的密码
* @author weirhp@gmail.com
* http://weibo.com/weirhp
*/
public class EncodeQQPass {
public static void main(String[] args) {
System.out.println(encodePass("yourpass", "!CEY",
"\\x00\\x00\\x00\\x00\\x35\\x33\\x5f\\x58"));
}
public static String encodePass(String password, String vcode, String uin) {
String[] us = uin.split("\\\\x");
byte[] uinByte = new byte[us.length - 1];
if (us.length == 9) {
for (int i = 1; i < us.length; i++) {
uinByte[i - 1] = getByte(Integer.parseInt(us[i], 16));
}
}
return md5(md5(getByte(hexchar2bin(md5(password)), uinByte))
+ vcode.toUpperCase());
}
public static String md5(byte[] source) {
String s = null;
char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
'a', 'b', 'c', 'd', 'e', 'f' };
try {
java.security.MessageDigest md = java.security.MessageDigest
.getInstance("MD5");
md.update(source);
byte tmp[] = md.digest();
char str[] = new char[16 * 2];
int k = 0;
for (int i = 0; i < 16; i++) {
byte byte0 = tmp[i];
str[k++] = hexDigits[byte0 >>> 4 & 0xf];
str[k++] = hexDigits[byte0 & 0xf];
}
s = new String(str);
} catch (Exception e) {
e.printStackTrace();
}
return s.toUpperCase();
}
public static String md5(String str) {
return md5(str.getBytes()).toUpperCase();
}
public static byte[] hexchar2bin(String str) {
byte[] bytes = new byte[str.length() / 2];
int j = 0;
for (int i = 0; i < str.length(); i = i + 2) {
int iv = Integer.parseInt(str.substring(i, i + 2), 16);
bytes[j++] = getByte(iv);
}
return bytes;
}
public static byte getByte(int intValue) {
int byteValue = 0;
int temp = intValue % 256;
if (intValue < 0) {
byteValue = temp < -128 ? 256 + temp : temp;
} else {
byteValue = temp > 127 ? temp - 256 : temp;
}
return (byte) byteValue;
}
public static byte[] getByte(byte[] b1, byte[] b2) {
byte[] bs = new byte[b1.length + b2.length];
int i = 0;
for (i = 0; i < b1.length; i++) {
bs[i] = b1[i];
}
for (int j = 0; j < b2.length; j++) {
bs[i + j] = b2[j];
}
return bs;
}
}
* 加密传输时的密码
* @author weirhp@gmail.com
* http://weibo.com/weirhp
*/
public class EncodeQQPass {
public static void main(String[] args) {
System.out.println(encodePass("yourpass", "!CEY",
"\\x00\\x00\\x00\\x00\\x35\\x33\\x5f\\x58"));
}
public static String encodePass(String password, String vcode, String uin) {
String[] us = uin.split("\\\\x");
byte[] uinByte = new byte[us.length - 1];
if (us.length == 9) {
for (int i = 1; i < us.length; i++) {
uinByte[i - 1] = getByte(Integer.parseInt(us[i], 16));
}
}
return md5(md5(getByte(hexchar2bin(md5(password)), uinByte))
+ vcode.toUpperCase());
}
public static String md5(byte[] source) {
String s = null;
char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
'a', 'b', 'c', 'd', 'e', 'f' };
try {
java.security.MessageDigest md = java.security.MessageDigest
.getInstance("MD5");
md.update(source);
byte tmp[] = md.digest();
char str[] = new char[16 * 2];
int k = 0;
for (int i = 0; i < 16; i++) {
byte byte0 = tmp[i];
str[k++] = hexDigits[byte0 >>> 4 & 0xf];
str[k++] = hexDigits[byte0 & 0xf];
}
s = new String(str);
} catch (Exception e) {
e.printStackTrace();
}
return s.toUpperCase();
}
public static String md5(String str) {
return md5(str.getBytes()).toUpperCase();
}
public static byte[] hexchar2bin(String str) {
byte[] bytes = new byte[str.length() / 2];
int j = 0;
for (int i = 0; i < str.length(); i = i + 2) {
int iv = Integer.parseInt(str.substring(i, i + 2), 16);
bytes[j++] = getByte(iv);
}
return bytes;
}
public static byte getByte(int intValue) {
int byteValue = 0;
int temp = intValue % 256;
if (intValue < 0) {
byteValue = temp < -128 ? 256 + temp : temp;
} else {
byteValue = temp > 127 ? temp - 256 : temp;
}
return (byte) byteValue;
}
public static byte[] getByte(byte[] b1, byte[] b2) {
byte[] bs = new byte[b1.length + b2.length];
int i = 0;
for (i = 0; i < b1.length; i++) {
bs[i] = b1[i];
}
for (int j = 0; j < b2.length; j++) {
bs[i + j] = b2[j];
}
return bs;
}
}
发表评论
-
java编程思想final的理解
2015-03-06 13:38 317根据上下文环境,java的关键字final也存在着细微的区别, ... -
PDF2SWF中文字符集解决方案
2014-02-26 15:12 781转自:http://www.cnblogs.com/liver ... -
Runtime.getRuntime().exec() 输出流阻塞的解决方法
2014-02-26 09:40 1803转自:http://blog.csdn.net/xiaoani ... -
笔记(不用老搜索了)
2013-07-17 16:16 0下面代码则执行了subgo()函数, <a href ... -
利用LinkedBlockingQueue实现生产者-消费者模式
2013-06-05 16:09 660由于LinkedBlockingQueue 实现是线程安全的, ... -
jsoup解析
2013-04-28 15:31 637http://www.ibm.com/developerwor ... -
java线程管理利器:java.util.current的用法举例
2012-12-05 15:42 964DK5中增加了Doug Lea的并发库,这一引进给java线程 ... -
Tomcat - 解决which must be escaped when used within the value错误
2012-11-19 15:17 618http://www.cnblogs.com/javadu/a ... -
Java POI Word 写文档
2012-11-09 09:19 7791 package apache.poi; 2 3 ... -
使用COS组件实现文件上传
2012-06-15 11:25 1434转自:http://blog.csdn.net/jadyer/ ... -
Java Annotation(1)
2011-06-19 09:48 622作者:曾巧(numenzq) 摘要 Annotation( ... -
关于request得到路径的几种方法
2011-06-08 15:43 909request.getRequestURI() /jque ... -
JAVA EXCEL API 简介
2011-04-18 16:32 685转自:http://www.ibm.com/dev ... -
Hibernate 多对多双向关联
2011-03-21 11:09 581Hibernate 多对多双向关联 一、模型介绍 多个 ... -
Hibernate 一对多连接表双向关联
2011-03-21 11:09 732Hibernate 一对多连接表双向关联 一、模型介绍 ... -
Hibernate 一对多外键双向关联
2011-03-21 11:08 742Hibernate 一对多外键双向关联 一、模型介绍 ... -
Hibernate 一对一主键双向关联
2011-03-21 11:07 674Hibernate 一对一主键双向关联 一对一主键映射在一 ... -
Hibernate 一对一外键双向关联
2011-03-21 11:07 604Hibernate 一对一外键双向关联 一对一外键关联是一 ... -
Hibernate 多对多单向关联
2011-03-21 11:06 603Hibernate 多对多单向关联 一、模型介绍 多个人( ... -
Hibernate 多对一连接表单向关联
2011-03-21 11:05 627Hibernate 多对一连接表单向关联 一、模型介绍 ...
相关推荐
数据加密数据加密数据加密数据加密数据加密数据加密数据加密数据加密
加密记事本加密记事本加密记事本加密记事本
c#加密解密c#加密解密c#加密解密c#加密解密c#加密解密c#加密解密c#加密解密c#加密解密
js中文加密js中文加密js中文加密js中文加密js中文加密js中文加密
迅影加密王是采用最新(AES256位)高强度加密算法的加密软件, 迅影 加密王将在您计算机磁盘中 的部分区域进行加密,并生成一个保险柜,将文件数据存放保险柜中即可加密,只有当用户使用自己的密码登录保险柜后才能浏览...
U盘加密软件移动硬盘加密-文件夹加密器lockdir 便携式文件夹加密器是一款高强度的文件夹加密软件,可以方便地加密任意文件夹,并且支持U盘加密,移动硬盘加密. 本软件界面简洁,操作简单,功能强大,性能超群,是...
Springboot项目报文加密(采用AES、RSA动态加密策略) Springboot项目报文加密(采用AES、RSA动态加密策略) Springboot项目报文加密(采用AES、RSA动态加密策略) Springboot项目报文加密(采用AES、RSA动态加密...
主要介绍了使用java自带des加密算法实现文件加密和字符串加密的示例,需要的朋友可以参考下
苏林加密系统是一款专门为php加密的程序,支持sg11加密、xend加密、goto加密、Leave加密、enphp加密、NoName加密 可以发展用户,可以设置某加密价格,支持API接口加密,对接官方支付、码支付和易支付。 更新记录:...
MMC加密 管理工具加密 网吧机器加密保护工具 给服务加密防注销破解机器
VBS加密器VBS加密器VBS加密器VBS加密器VBS加密器
js请求数据加密代码加密微信小程序请求数据加密账号密码加密
加密狗加密锁型号检测工具(最新整理)含加密狗硬件id
此工具用于加密文件夹,如果你不想让人看你文件夹里的文件,你可以用此软件进行加密。
文件加密软件文件加密软件文件加密软件文件加密软件文件加密软件文件加密软件文件加密软件文件加密软件文件加密软件
Java AES加密Java AES加密Java AES加密Java AES加密Java AES加密Java AES加密Java AES加密
C# 文件加密 实例源码(加密解密)
文件夹加密小程序文件夹加密小程序文件夹加密小程序文件夹加密小程序文件夹加密小程序文件夹加密小程序
QT_RSA加密,非对称密钥加密,源码加小程序。可以加密大文件,分片加密的。是美国使用的加密等级最高的加密方式。至今无有破解MD5加密已经被山东大学的一个老师破解过了。证明MD5是不安全的加密。