ZipFile
ZipInputStream
ZipOutputStream
ZipInputStream
ZipOutputStream
解决方案 »
- awt,swing如何嵌入html网页
- 技术!求助!命令行javac编译失败..提示内部引用类无法标识
- swing布局的问题,怎么才能让组件紧凑些
- 关于文件路径一问
- 请教一个修改方法名称的问题。
- #初学Java(Core Java),写了一些小例子,贴出来,作个备份参考,也希望大家能贴一些经典的Toys
- 为什么用servlet读入一个HTML文件后再显示出来时确没有了格式?
- 怎么区别button?
- Non-static inner class为什么不可以有static成员?
- 求大神帮我找一下错误原因
- 请问JTable怎样删除某一行的数据?送分!
- 谁有JAVA坚果系列的电子书呀?最好是中文的,给偶一份吧,谢谢了,100分不行,再给。。
private static Random random = new Random();
public static void main(String[] args){
String s = "只要不是加密前的字符就可以了,能够还原。加密和还原的速度要很快。关键是要快";
System.out.println(s+'\n');
byte[] key = getRandomKey(5);
byte[] s1 = encrypt(key,s.getBytes());
System.out.println(new String(s1)+'\n');
byte[] s2 = decrypt(key,s1);
System.out.println(new String(s2)+'\n');
}
public static byte[] getRandomKey(int length) {
if(length <= 0){
throw new IllegalArgumentException();
}
int rand, index=0;
byte[] result = new byte[length];
for(int i=0; i<(length/5); i++){
rand = random.nextInt();
for(int j=0; j<5; j++) {
result[index++] = (byte)(rand&63);
rand >>= 6;
}
}
rand = random.nextInt();
for(int i=0; i<(length%5); i++) {
result[index++] = (byte)(rand&63);
rand >>= 6;
}
return result;
}
public static byte[] encrypt(byte[] key, byte[] b) {
if(key==null || b==null){
throw new IllegalArgumentException();
}
int index = 0;
byte[] result = (byte[])b.clone();
for(int i=0; i<(b.length/key.length); i++){
for(int j=0; j<key.length; j++){
result[index++] += key[j];
}
}
for(int i=0; i<(b.length%key.length); i++){
result[index++] += key[i];
}
return result;
}
public static byte[] decrypt(byte[] key, byte[] b) {
if(key==null || b==null){
throw new IllegalArgumentException();
}
int index = 0;
byte[] result = (byte[])b.clone();
for(int i=0; i<(b.length/key.length); i++){
for(int j=0; j<key.length; j++){
result[index++] -= key[j];
}
}
for(int i=0; i<(b.length%key.length); i++){
result[index++] -= key[i];
}
return result;
}
}
否则,你可以去看看jive上的有个加密、解密的算法。