(急求!!!)java 文字转化为数字

silence 2010-09-16 02:47:47
有没有什么加密方法,可以把一个字符串加密后变成一串数字的算法,然后解析的时候,有可以解析为文字的!
例如: 把苹果加密后变成024515264 ,当我的程序解析024515264这串数字的时候,又可以被编译成苹果

也就是说,我随便输入一串文字,经过编译之后成了一串数字,然后当我遇到这串数字的时候有可以根据这个算法还原回来原来的文字!

有没哟那个大姐大哥,有类似的案例,给小弟说说啊!!!
...全文
722 31 点赞 打赏 收藏 举报
写回复
31 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
silence 2010-10-08
谢谢啦,虽然现在这个需求实现不了,但是还是很感谢各位大哥大姐热心的帮助我解决问题! 谢谢!!!
  • 打赏
  • 举报
回复
kala197 2010-09-20
学习了
  • 打赏
  • 举报
回复
XJAVASunjava 2010-09-19
给楼主个代码,不过只是把中文转换为数字,暂时没有解密的算法,目前我正在研究中.....呵呵
public class Compile {

/**
* @param args
*/
public static void strTonum(String str){
for(int i=0;i<str.length();i++)
System.out.print((int)str.charAt(i));
}

//public static void numTostr(String str)
public static void main(String[] args) {
// TODO Auto-generated method stub
String message="苹果";
Compile.strTonum(message);
}

}

编译的结果是:3352926524
  • 打赏
  • 举报
回复
silence 2010-09-19
[Quote=引用 20 楼 mxlmwl 的回复:]

1楼不是给你结果了吗?第一段是getByte来取,取后的结果就是数字了。第二段是反转回到汉字。
[/Quote]

大哥。。 你把那段代码运行一次,看看结果是什么? 我运行的结果是什么都不是啊? 
  • 打赏
  • 举报
回复
wj84507657 2010-09-17
加密的话。。你的解决个问题,你要传的文字是英文还是中文,英文的话,可以用asc码,得到对应的asc码,(acs表自己上网查)你在用自己知道的算法,如倒序,插叙,或则在两个字之间加固定的数字。基本就可以了,中文的话当然也有类似的算法,当然有点复杂。呵呵
  • 打赏
  • 举报
回复
flybird 2010-09-17
这样,getByte 用一种编码方式
然后可以按位与其他的一个字符做&操作
得到结果
解析的时候按位&同样的字符串就可以了
很多时候加密都这样做的
  • 打赏
  • 举报
回复
zn85600301 2010-09-17
DES加密
http://xuganggogo.javaeye.com/blog/321632
就当工具类用吧
  • 打赏
  • 举报
回复
yishuangpangxie 2010-09-17
HASH算法,,,楼主可以看下HashMap
  • 打赏
  • 举报
回复
24K純帥 2010-09-17
常见的加密不就是MD5,RSA么,好像不是变成数字的,要不LZ自己写一个HashSet,之后再replaceall()
  • 打赏
  • 举报
回复
zn85600301 2010-09-17
直接去网上找DES加密 很简单的
  • 打赏
  • 举报
回复
newleague 2010-09-17
public static void main(String[] args) {
String str = "苹果";
byte[] b = null;
try {
b = str.getBytes("utf-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
for(byte bb :b){
System.out.println(bb);
}
try {
System.out.println(new String(b, "utf-8"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
  • 打赏
  • 举报
回复
silence 2010-09-17
[Quote=引用 1 楼 madfatso 的回复:]

Java code
String str ="苹果";
byte [] b = null;
try {
b = str.getBytes("utf-8");
} catch (UnsupportedEncodingException e) {
e.printStack……
[/Quote]

楼上的大哥,你给的代码,没有把汉字转化为数字啊? 我运行了 ,结果还是汉字啊!
  • 打赏
  • 举报
回复
silence 2010-09-17
[Quote=引用 2 楼 netsgo 的回复:]

楼上只是变成了数字,没有加密,呵呵。
不过后面的事楼主应该会了。大不了自己写个算法啊,比如将楼上转化的数字再倒一下序,09887->78890
呵呵,只是举个例子,希望楼主举一反三。
[/Quote]

我也想要举一反三,可是1楼的大哥给的代码,没有把汉子转化为数字啊!!
String str ="苹果";
byte [] b = null;
try {
b = str.getBytes("utf-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
try {
System.out.println(new String(b,"utf-8"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
这段代码的运行结果是 苹果啊!!!
  • 打赏
  • 举报
回复
silence 2010-09-17
[Quote=引用楼主 hangxing_liu 的回复:]
有没有什么加密方法,可以把一个字符串加密后变成一串数字的算法,然后解析的时候,有可以解析为文字的!
例如: 把苹果加密后变成024515264 ,当我的程序解析024515264这串数字的时候,又可以被编译成苹果

也就是说,我随便输入一串文字,经过编译之后成了一串数字,然后当我遇到这串数字的时候有可以根据这个算法还原回来原来的文字!

有没哟那个大姐大哥,有类似的案例,给小弟说说啊!!……
[/Quote]

这个是把苹果变成数字? 为什么我运行了还是显示苹果两个字?
  • 打赏
  • 举报
回复
thegodofwar 2010-09-17
[Quote=引用 23 楼 flagiris 的回复:]
Java code

public static void main(String[] args) {
String str = "苹果";
System.out.println(encrypt(str));
System.out.println(decrypt(enc……
[/Quote]
很不错,按照这个完全可以举一反三了....
  • 打赏
  • 举报
回复
jionghui 2010-09-17
[Quote=引用 23 楼 flagiris 的回复:]
Java code

public static void main(String[] args) {
String str = "苹果";
System.out.println(encrypt(str));
System.out.println(decrypt(enc……
[/Quote]

不错!
  • 打赏
  • 举报
回复
jionghui 2010-09-17
#1的我试了下,怎么每个都是转成[B@de6ced
  • 打赏
  • 举报
回复
菖蒲芭芭 2010-09-17

public static void main(String[] args) {
String str = "苹果";
System.out.println(encrypt(str));
System.out.println(decrypt(encrypt(str)));
}
//加密
private static String encrypt(String str){
byte[] b = null;
StringBuffer sb = new StringBuffer();
try {
b = str.getBytes("utf-8");
} catch (UnsupportedEncodingException e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();
}
for(byte bb : b){
sb.append(((int)bb + 256)+".");
}
return sb.toString().substring(0, sb.toString().lastIndexOf("."));
}
//解密
private static String decrypt(String num){
String str = null;
String[] bytes = num.split("\\.");
byte[] b = new byte[bytes.length];
for(int i=0;i<bytes.length;i++){
b[i] = (byte)(Integer.parseInt(bytes[i])-256);
}
try {
str = new String(b, "utf-8");
} catch (UnsupportedEncodingException e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();
}
return str;
}
  • 打赏
  • 举报
回复
dinglimin2009 2010-09-17
一个加密算法啊
  • 打赏
  • 举报
回复
sq_ling 2010-09-17
就是用des加密,然后把密文转换成ascII码就是数字了
  • 打赏
  • 举报
回复
加载更多回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2010-09-16 02:47
社区公告
暂无公告