String 和 byte[]的转换? byte[] password=DES.createEncryptor(pwd);String pp=new String(password)这样转换后pp和password不一样 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果byte[] password=pwd.getBytes();String pp=new String(password);这样就应该是一样了。而byte[] password=DES.createEncryptor(pwd);是对pwd产生了加密算法。不用解密算法当然就不一样了 你这样转换通过DES加密字符串,不是转换,结果当然不一样了 我要把String加密存入数据库然后再从库里读出来解密该怎么做?谢谢 我要把String加密存入数据库然后再从库里读出来解密该怎么做?谢谢我是这样做的首先:String pwd=“123”;我用DES加密byte[] password=DES.createEncryptor(pwd);然后转换成StringString pp=new String(password);存入数据库然后从数据库中拿出来String t2=rs.getString("FpassWord");转换成byte[]byte[] tempwd=t2.getBytes();在解密String rightpwd=DES.createDecryptor(tempwd);比较rightpwd和pwd就不一样了怎么回事啊? 你DES这个类是哪里的啊?查它的API啊 http://dev.csdn.net/Develop/article/28/28239.shtm 我的DES就是用的上面那一个http://dev.csdn.net/Develop/article/28/28239.shtm没问题我试过,可能就是String 和 byte[]的转换有问题? 你从数据库取数换成这样试试看byte[] t2=rs.getBytes("FpassWord");String rightpwd=DES.createDecryptor(t2);看看对不对 还是不行,我这次没有转换直接把加密了的byte[] password=DES.createEncryptor(pwd);password存入数据库但当我用byte[] t2=rs.getBytes("FpassWord");拿出来打印出来就变了再用String rightpwd=DES.createDecryptor(t2);解密就不对了 这个DES的类本身可能就有问题 这个问题我也搞了很久了,想要做的效果和楼主一样不过都不行!http://dev.csdn.net/Develop/article/11/11898.shtmpublic static void main(String[] args) throws Exception{ debug = true;// byte[] key = getKey(); byte[] key = "好好学习".getBytes(); byte[] encodeByte = encode("测试加密".getBytes(),key); String str=new String(encodeByte); byte[] decodeByte = decode(str.getByte(),key); //decode(encode("测试加密".getBytes(),key),key); md5("测试加密".getBytes()); } 把main函数改成上面这样就编译不过了!查看encodeByte 和 str.getByte()的2进制字符,绝大部分相同,只是最后一个字节改变了! 对于英文很简单String first,second;first="123456asdf"//string->byte[]byte bytearrary[]=first.getBytes();//byte[]->stringfor(int i=0;i<first.length();i++) second+=(char)bytearrary[i];中文得我也在找! 不太明白原理,帮你顶下,我有个建议,你可以debug下,看看转换过程中的字符串的值 求助了~这个程序运行的时候说 main里的数组越界~请高手帮忙看看,还有必须用-Xlint才能编译,为啥呢?小弟感激不尽 JTextPane 复制图像问题,懂的请进。。。谢谢! 菜鸟求教超类、子类问题。 高难度问题~! 请教关于StreamTokenizer的用法(在线等!!!好郁闷!!) 字节流 AND 字符流 跪求如何写java程序将pdf转换成html或者txt格式 急问如何将applet中变量的值传递给web页面并在页面中显示出来?在线等,马上给份 如何实现选择一个文件夹? 紧急!在线等候!一个小程序! 给我讲讲什么是类,抽象类还有接口。 getName()函数是干什么的???
byte[] password=pwd.getBytes();
String pp=new String(password);
这样就应该是一样了。
而byte[] password=DES.createEncryptor(pwd);是对pwd产生了加密算法。不用解密算法当然就不一样了
然后再从库里读出来解密
该怎么做?谢谢
然后再从库里读出来解密
该怎么做?谢谢
我是这样做的首先:String pwd=“123”;
我用DES加密byte[] password=DES.createEncryptor(pwd);然后转换成String
String pp=new String(password);存入数据库
然后从数据库中拿出来String t2=rs.getString("FpassWord");
转换成byte[]byte[] tempwd=t2.getBytes();
在解密String rightpwd=DES.createDecryptor(tempwd);
比较rightpwd和pwd就不一样了怎么回事啊?
没问题我试过,可能就是String 和 byte[]的转换有问题?
byte[] t2=rs.getBytes("FpassWord");
String rightpwd=DES.createDecryptor(t2);看看对不对
我这次没有转换直接把加密了的byte[] password=DES.createEncryptor(pwd);
password存入数据库但当我用byte[] t2=rs.getBytes("FpassWord");拿出来打印出来就变了
再用String rightpwd=DES.createDecryptor(t2);解密就不对了
debug = true;
// byte[] key = getKey();
byte[] key = "好好学习".getBytes();
byte[] encodeByte = encode("测试加密".getBytes(),key);
String str=new String(encodeByte);
byte[] decodeByte = decode(str.getByte(),key);
//decode(encode("测试加密".getBytes(),key),key);
md5("测试加密".getBytes());
}
查看encodeByte 和 str.getByte()的2进制字符,绝大部分相同,只是最后一个字节改变了!
String first,second;
first="123456asdf"
//string->byte[]
byte bytearrary[]=first.getBytes();
//byte[]->string
for(int i=0;i<first.length();i++)
second+=(char)bytearrary[i];
中文得我也在找!