62,614
社区成员
发帖
与我相关
我的任务
分享
public class Test01 {
public static void main(String[] args) {
String str = "abc123";
String s = stringEnDeCodecn(str, 75L);
System.out.println(s);
}
public static String stringEnDeCodecn(String strSource, long ma) {
if(strSource == null || strSource.length() == 0) {
return "";
}
if(ma < 0) {
ma = -ma;
}
Random ran = new Random(-ma);
float x = ran.nextFloat();
StringBuilder sb = new StringBuilder();
for(int i = 0; i < strSource.length(); i++) {
int randomInteger;
do {
randomInteger = ran.nextInt(127);
}while(randomInteger < 30 || randomInteger > 100);
int charNum = vbAsc(strSource.charAt(i));
charNum ^= randomInteger;
sb.append(vbChr(charNum));
}
return sb.toString();
}
/**
* 以 VB 的格式将一个字符转换成数字
* @param c
* @return
*/
private static int vbAsc(char c) {
if(c < 0xff) {
return (int)c;
}
byte[] bys = null;
try {
bys = String.valueOf(c).getBytes("gbk");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
if(bys == null || bys.length < 2) {
throw new IllegalArgumentException("ERROR! " + c + ", cannot be converted to VB ASCII.");
}
return 0xffff0000 | ((bys[0] & 0xff) << 8) | (bys[1] & 0xff);
}
/**
* 以 VB 的格式将一个数值转换成字符
* @param n
* @return
*/
private static char vbChr(int n) {
n &= 0xffff;
if(n < 0xff) {
return (char)n;
}
byte[] bys = new byte[2];
bys[0] = (byte)((n & 0xff00) >> 8);
bys[1] = (byte)(n & 0xff);
String str = null;
try {
str = new String(bys, "gbk");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
if(str == null || str.length() < 1) {
throw new IllegalArgumentException("ERROR! " + n + ", cannot be converted to a character.");
}
return str.charAt(0);
}
}
import java.io.UnsupportedEncodingException;
import java.util.Random;
public class Test {
public static void main(String[] args) {
String str = "五笔字型计算机汉字输入技术";
String s = stringEnDeCodecn(str, 121251L);
System.out.println(s);
}
public static String stringEnDeCodecn(String strSource, long ma) {
if(strSource == null || strSource.length() == 0) {
return "";
}
if(ma < 0) {
ma = -ma;
}
float x = new Random(-ma).nextFloat();
Random ran = new Random();
StringBuilder sb = new StringBuilder();
for(int i = 0; i < strSource.length(); i++) {
int randomInteger;
do {
randomInteger = ran.nextInt(127);
}while(randomInteger < 30 || randomInteger > 100);
int charNum = vbAsc(strSource.charAt(i));
charNum ^= randomInteger;
sb.append(vbChr(charNum));
}
return sb.toString();
}
/**
* 以 VB 的格式将一个字符转换成数字
* @param c
* @return
*/
private static int vbAsc(char c) {
if(c < 0xff) {
return (int)c;
}
byte[] bys = null;
try {
bys = String.valueOf(c).getBytes("gbk");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
if(bys == null || bys.length < 2) {
throw new IllegalArgumentException("ERROR! " + c + ", cannot be converted to VB ASCII.");
}
return 0xffff0000 | ((bys[0] & 0xff) << 8) | (bys[1] & 0xff);
}
/**
* 以 VB 的格式将一个数值转换成字符
* @param n
* @return
*/
private static char vbChr(int n) {
n &= 0xffff;
if(n < 0xff) {
return (char)0xff;
}
byte[] bys = new byte[2];
bys[0] = (byte)((n & 0xff00) >> 8);
bys[1] = (byte)(n & 0xff);
String str = null;
try {
str = new String(bys, "gbk");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
if(str == null || str.length() < 1) {
throw new IllegalArgumentException("ERROR! " + n + ", cannot be converted to a character.");
}
return str.charAt(0);
}
}