大家好,能把这个C算法改写成java语言的给100分,测试通过再加100分 本帖最后由 cn_a382 于 2010-12-24 16:13:01 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 哦,这个程序是用来把输入的密码shuffle,也就是打乱的,不过它用了很多C语言的字符变换函数,我不知道java可不可以实现 与其去改它 不如用java去实现和它一样的功能 看到c就.... 还是c++ java好 不是面向对象好 c语言的那些字符处理函数,java中差不多都有吧!你的意思说清楚,可以实现一个! 把你的意思说清楚了,或许可以帮你写一个!c语言中的那些字符串处理函数,java差不多都有的吧! 直接说想实现什么功能,用java写一个的了,周末了,闲人很多 未细究,简单的改写了一下:class Descrypt { public static void main(String[] args){ for (int i=0;i<999999 ;i++ ) pub_base_EnDes(String.format("%06d",i)); } public static void pub_base_EnDes(String pass){ System.out.println( pass+" = \""+descrypt(pass)+"\""); } public static String descrypt(String pass){ return Shuff_Data(CBexchange(0,pass)); } public static String CBexchange(int f,String pass){ char t[] = pass.toCharArray(); char s[] = pass.toCharArray(); switch (f) { case 0: t[0] = s[2]; t[1] = s[5]; t[2] = s[0]; t[3] = s[4]; t[4] = s[3]; t[5] = s[1]; break; case 1: t[0] = s[2]; t[1] = s[5]; t[2] = s[0]; t[3] = s[4]; t[4] = s[3]; t[5] = s[1]; break; } return new String(t); } public static String Shuff_Data(String pass){ int offset = 0; int len1 = pass.length(); char msg[] = pass.toCharArray(); switch(len1) { case 16 : msg[offset++]^= 0x01; case 15 : msg[offset++]^= 0x09; case 14 : msg[offset++]^= 0x0f; case 13 : msg[offset++]^= 0x02; case 12 : msg[offset++]^= 0x0c; case 11 : msg[offset++]^= 0x08; case 10 : msg[offset++]^= 0x02; case 9 : msg[offset++]^= 0x07; case 8 : msg[offset++]^= 0x06; case 7 : msg[offset++]^= 0x0a; case 6 : msg[offset++]^= 0x0d; case 5 : msg[offset++]^= 0x00; case 4 : msg[offset++]^= 0x08; case 3: msg[offset++]^= 0x03; case 2 : msg[offset++]^= 0x09; case 1 : msg[offset++]^= 0x0b; } return new String(msg); } } 这个还是说清楚点功能,直接用JAVA写一个··· 改什么改啊用jni直接调用吧 JDK6的环境下可以执行。import java.util.Formatter;public class EncryptionDES { private static final int PASSWD_LEN = 6; public static String descrypt(String str) { if(str.length()>PASSWD_LEN) throw new IllegalArgumentException("the length of string must be less than seven"); String pcMPin = new Formatter().format("%06d", Integer.valueOf(str)).out().toString(); return ShuffData(CBExchange(0, pcMPin), PASSWD_LEN); } public static String baseEnDes(String passwd) { if(passwd.length()>PASSWD_LEN) throw new IllegalArgumentException("the length of string must be less than seven"); String mm = descrypt(passwd); System.out.println(passwd + "=\"" + mm + "\""); return mm; } static String CBExchange(int f, String str) { char s[] = str.toCharArray(); char t[] = new char[s.length]; switch (f) { case 0: t[0] = s[2]; t[1] = s[5]; t[2] = s[0]; t[3] = s[4]; t[4] = s[3]; t[5] = s[1]; break; case 1: t[0] = s[2]; t[1] = s[5]; t[2] = s[0]; t[3] = s[4]; t[4] = s[3]; t[5] = s[1]; break; } return new String(t); } static String ShuffData(String msg, int len1) { char[] m = msg.toCharArray(); int offset = 0; switch (len1) { case 16: m[offset++] ^= 0x01; case 15: m[offset++] ^= 0x09; case 14: m[offset++] ^= 0x0f; case 13: m[offset++] ^= 0x02; case 12: m[offset++] ^= 0x0c; case 11: m[offset++] ^= 0x08; case 10: m[offset++] ^= 0x02; case 9: m[offset++] ^= 0x07; case 8: m[offset++] ^= 0x06; case 7: m[offset++] ^= 0x0a; case 6: m[offset++] ^= 0x0d; case 5: m[offset++] ^= 0x00; case 4: m[offset++] ^= 0x08; case 3: m[offset++] ^= 0x03; case 2: m[offset++] ^= 0x09; case 1: m[offset++] ^= 0x0b; } return new String(m); } public static void main(String[] args) { int i, j, k, l, m, n; for (i = 0; i <= 9; i++) { for (j = 0; j <= 9; j++) { for (k = 0; k <= 9; k++) { for (l = 0; l <= 9; l++) { for (m = 0; m <= 9; m++) { for (n = 0; n <= 9; n++) { StringBuilder sb =new StringBuilder(); sb.append(i).append(k).append(j); sb.append(l).append(m).append(n); baseEnDes(sb.toString()); } } } } } } }} 为什么此处e没有被实例化就可以直接调用printStackTrace()方法? 一个Java application 对应一个Java virtual machine映像,还是别的?? 弱弱的问一个小问题.... 关于java读取PDF文件 初学者问题 有个头痛的问题请教下大家~ applet读图片的问题 怎样得到系统的所有字体! getInstance一般使用来干什么的啊? 我的cute FTP列不全服务器上的目录,使用leapFTP吧,干脆一个也显示不出来,什么问题? ant怎么去的basedir的上一级目录? 漫谈equals方法(欢迎讨论)
还是c++ java好
不是面向对象好
class Descrypt
{
public static void main(String[] args){
for (int i=0;i<999999 ;i++ )
pub_base_EnDes(String.format("%06d",i));
} public static void pub_base_EnDes(String pass){
System.out.println( pass+" = \""+descrypt(pass)+"\"");
}
public static String descrypt(String pass){
return Shuff_Data(CBexchange(0,pass));
}
public static String CBexchange(int f,String pass){
char t[] = pass.toCharArray();
char s[] = pass.toCharArray();
switch (f) {
case 0:
t[0] = s[2];
t[1] = s[5];
t[2] = s[0];
t[3] = s[4];
t[4] = s[3];
t[5] = s[1];
break;
case 1:
t[0] = s[2];
t[1] = s[5];
t[2] = s[0];
t[3] = s[4];
t[4] = s[3];
t[5] = s[1];
break;
}
return new String(t);
}
public static String Shuff_Data(String pass){
int offset = 0;
int len1 = pass.length();
char msg[] = pass.toCharArray();
switch(len1) {
case 16 :
msg[offset++]^= 0x01;
case 15 :
msg[offset++]^= 0x09;
case 14 :
msg[offset++]^= 0x0f;
case 13 :
msg[offset++]^= 0x02;
case 12 :
msg[offset++]^= 0x0c;
case 11 :
msg[offset++]^= 0x08;
case 10 :
msg[offset++]^= 0x02;
case 9 :
msg[offset++]^= 0x07;
case 8 :
msg[offset++]^= 0x06;
case 7 :
msg[offset++]^= 0x0a;
case 6 :
msg[offset++]^= 0x0d;
case 5 :
msg[offset++]^= 0x00;
case 4 :
msg[offset++]^= 0x08;
case 3:
msg[offset++]^= 0x03;
case 2 :
msg[offset++]^= 0x09;
case 1 :
msg[offset++]^= 0x0b;
}
return new String(msg);
}
}
用jni直接调用吧
import java.util.Formatter;public class EncryptionDES { private static final int PASSWD_LEN = 6; public static String descrypt(String str) {
if(str.length()>PASSWD_LEN)
throw new IllegalArgumentException("the length of string must be less than seven");
String pcMPin = new Formatter().format("%06d",
Integer.valueOf(str)).out().toString();
return ShuffData(CBExchange(0, pcMPin), PASSWD_LEN);
} public static String baseEnDes(String passwd) {
if(passwd.length()>PASSWD_LEN)
throw new IllegalArgumentException("the length of string must be less than seven");
String mm = descrypt(passwd);
System.out.println(passwd + "=\"" + mm + "\"");
return mm;
} static String CBExchange(int f, String str) {
char s[] = str.toCharArray();
char t[] = new char[s.length];
switch (f) {
case 0:
t[0] = s[2];
t[1] = s[5];
t[2] = s[0];
t[3] = s[4];
t[4] = s[3];
t[5] = s[1];
break;
case 1:
t[0] = s[2];
t[1] = s[5];
t[2] = s[0];
t[3] = s[4];
t[4] = s[3];
t[5] = s[1];
break;
}
return new String(t);
} static String ShuffData(String msg, int len1) {
char[] m = msg.toCharArray();
int offset = 0;
switch (len1) {
case 16:
m[offset++] ^= 0x01;
case 15:
m[offset++] ^= 0x09;
case 14:
m[offset++] ^= 0x0f;
case 13:
m[offset++] ^= 0x02;
case 12:
m[offset++] ^= 0x0c;
case 11:
m[offset++] ^= 0x08;
case 10:
m[offset++] ^= 0x02;
case 9:
m[offset++] ^= 0x07;
case 8:
m[offset++] ^= 0x06;
case 7:
m[offset++] ^= 0x0a;
case 6:
m[offset++] ^= 0x0d;
case 5:
m[offset++] ^= 0x00;
case 4:
m[offset++] ^= 0x08;
case 3:
m[offset++] ^= 0x03;
case 2:
m[offset++] ^= 0x09;
case 1:
m[offset++] ^= 0x0b;
}
return new String(m);
} public static void main(String[] args) {
int i, j, k, l, m, n;
for (i = 0; i <= 9; i++) {
for (j = 0; j <= 9; j++) {
for (k = 0; k <= 9; k++) {
for (l = 0; l <= 9; l++) {
for (m = 0; m <= 9; m++) {
for (n = 0; n <= 9; n++) {
StringBuilder sb =new StringBuilder();
sb.append(i).append(k).append(j);
sb.append(l).append(m).append(n);
baseEnDes(sb.toString());
}
}
}
}
}
}
}}