微科社区,轻松开发从此开始! 请登陆 免费注册

微科社区

当前位置:首页 > Java平台 > J2SE >

【高分】一个解密的方法求加密方法

时间:2014-04-13 11:09  浏览:努力统计中...
这个是解密的。求对应的加密。谢了. publicstaticStringdecode(StringparamString) { byte[]arrayOfByte=Base64.decode(paramString,0); inti=85; for(intj=0;;j++) { if(j=arrayOfByte.length) returnnewString(arrayOfByte); arrayOfByte[j
   
这个是解密的。求对应的加密。谢了. 

 public static String decode(String paramString)
    {
      byte[] arrayOfByte = Base64.decode(paramString, 0);
      int i = 85;
      for (int j = 0; ; j++)
      {
        if (j >= arrayOfByte.length)
          return new String(arrayOfByte);
        arrayOfByte[j] = ((byte)(i ^ arrayOfByte[j]));
        i = (byte)(i + 1);
      }
    }


public static String encode(String paramString) {
int i=85;
byte[] arrayOfByte=paramString.getBytes();
for (int j=0;; j++) {
if (j>=paramString.length()) {
return Base64.encode(arrayOfByte);
}
arrayOfByte[j]=(byte)(i^arrayOfByte[j]);
i=(byte)(i+1);
}
}


我的Base64类

public class Base64 {
private final static char[] ALPHABET="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".toCharArray();
private static int[] toInt=new int[128];
static {
for (int i=0; i<ALPHABET.length; i++) {
toInt[ALPHABET[i]]=i;
}
}
public static String encode(byte[] buf) {
int size=buf.length;
char[] ar=new char[(size+2)/3*4];
int a=0;
int i=0;
while (i<size) {
byte b0=buf[i++];
byte b1=i<size?buf[i++]:0;
byte b2=i<size?buf[i++]:0;
int mask=0x3F;
ar[a++]=ALPHABET[b0>>2&mask];
ar[a++]=ALPHABET[(b0<<4|(b1&0xFF)>>4)&mask];
ar[a++]=ALPHABET[(b1<<2|(b2&0xFF)>>6)&mask];
ar[a++]=ALPHABET[b2&mask];
}
switch (size%3) {
case 1:
ar[--a]='=';
case 2:
ar[--a]='=';
}
return new String(ar);
}
public static byte[] decode(String s) {
int delta=s.endsWith("==")?2:s.endsWith("=")?1:0;
byte[] buffer=new byte[s.length()*3/4-delta];
int mask=0xFF;
int index=0;
for (int i=0; i<s.length(); i+=4) {
int c0=toInt[s.charAt(i)];
int c1=toInt[s.charAt(i+1)];
buffer[index++]=(byte)((c0<<2|c1>>4)&mask);
if (index>=buffer.length) {
return buffer;
}
int c2=toInt[s.charAt(i+2)];
buffer[index++]=(byte)((c1<<4|c2>>2)&mask);
if (index>=buffer.length) {
return buffer;
}
int c3=toInt[s.charAt(i+3)];
buffer[index++]=(byte)((c2<<6|c3)&mask);
}
return buffer;
}
}


import java.util.Base64;
import java.util.Random;
import java.util.UUID;

public class Aloha {
    private static final int KEY = 85;

    public static String encode(String plainText) {
        Base64.Encoder encoder = Base64.getEncoder(); // Since Java 8
        byte[] arrayOfByte = plainText.getBytes();

        int i = KEY;
        for (int j = 0; ; ++j) {
            if (j >= arrayOfByte.length) {
                return encoder.encodeToString(arrayOfByte);
            }

            arrayOfByte[j] = ((byte)(i ^ arrayOfByte[j])); // 解密原理: a == a ^ b ^ b
            i = (byte) (i + 1);
        }
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线------