关于JAVA中ASCII与汉字的转换。
caok 2010-02-19 04:20:06
最近在做一项目,由于原项目是powerbuilder 9.0开发,其中的用户密码的加密与解密,解密是没有问题(原来PB程序所加的密),但是用JAVA去加密与PB加密的实现效果一样,搞了很长时间也搞不定,各位大侠帮我看看。
解密程序:
public static String DeCode(String code) {
String binary = "", ret = "", bit = "";
int bin, len;
byte[] byt = code.getBytes();
for (int k = 0; k < byt.length; k++) {
bit = "";
bin = byt[k] & 0xFF;
if (bin > 128) {
k++;
}
binary = Integer.toBinaryString(bin);
len = 8 - binary.length();
for (int i = 0; i < len; i++) {
binary = "0" + binary;
}
for (int n = 0; n < binary.length(); n++) {
if (binary.substring(n, n + 1).equals("0")) {
bit = bit + "1";
} else {
bit = bit + "0";
}
}
bin = Integer.parseInt(bit, 2);
ret = ret + (char)bin;
}
return ret;
}
[color=#FF0000]//加密程序[/color] 就是这加密与PB的效果不一样
public static String EnCode(String code) {
String binary = "", ret = "", bit = "";
int bin, len;
byte[] byt = code.getBytes();
for (int k = 0; k < byt.length; k++) {
bit = "";
binary = Integer.toBinaryString(bin);
len = 8 - binary.length();
for (int i = 0; i < len; i++) {
binary = "0" + binary;
}
for (int n = 0; n < binary.length(); n++) {
if (binary.substring(n, n + 1).equals("0")) {
bit = bit + "1";
} else {
bit = bit + "0";
}
}
bin = Integer.parseInt(bit, 2); //二进制转换为十进制
bit = (char)bin;
ret = ret + bit;
}
return ret;
}