怎样判断一段字符串加密方式是用什么方式加密

2013年5月 总版技术专家分月排行榜第一
2016年7月 总版技术专家分月排行榜第二2016年3月 总版技术专家分月排行榜第二2015年12月 总版技术专家分月排行榜第二2014年8月 总版技术专家分月排行榜第二2014年7月 总版技术专家分月排行榜第二2013年6月 总版技术专家分月排行榜第二
2013年5月 总版技术专家分月排行榜第一
2016年7月 总版技术专家分月排行榜第二2016年3月 总版技术专家分月排行榜第二2015年12月 总版技术专家分月排行榜第二2014年8月 总版技术专家分月排行榜第二2014年7月 总版技术专家分月排行榜第二2013年6月 总版技术专家分月排行榜第二
2010年6月 PHP大版内专家分月排行榜第二
2010年8月 PHP大版内专家分月排行榜第三
2013年5月 总版技术专家分月排行榜第一
2016年7月 总版技术专家分月排行榜第二2016年3月 总版技术专家分月排行榜第二2015年12月 总版技术专家分月排行榜第二2014年8月 总版技术专家分月排行榜第二2014年7月 总版技术专家分月排行榜第二2013年6月 总版技术专家分月排行榜第二
2013年5月 总版技术专家分月排行榜第一
2016年7月 总版技术专家分月排行榜第二2016年3月 总版技术专家分月排行榜第二2015年12月 总版技术专家分月排行榜第二2014年8月 总版技术专家分月排行榜第二2014年7月 总版技术专家分月排行榜第二2013年6月 总版技术专家分月排行榜第二
2013年5月 总版技术专家分月排行榜第一
2016年7月 总版技术专家分月排行榜第二2016年3月 总版技术专家分月排行榜第二2015年12月 总版技术专家分月排行榜第二2014年8月 总版技术专家分月排行榜第二2014年7月 总版技术专家分月排行榜第二2013年6月 总版技术专家分月排行榜第二
本帖子已过去太久远了,不再提供回复功能。字符串加密_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
字符串加密
上传于||暂无简介
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
你可能喜欢关于MD5加密同一个字符串调用方式不同,返回密文不同。见鬼啦!!!!! - 开源中国社区
当前访客身份:游客 [
当前位置:
这是MAIN方法请求调用加密方法返回的密文是:c4e479cfc417f1dfcd1bf
public static void main(String[] args) {
String name = &深圳市&;
String password = &963963&;
String md5Value = MyUtils.getMD5(name+&#&+password);
System.out.println(md5Value);
这是前端请求Action调用加密方法返回的密文是:274ff6824a5efe75314cdc&
public ActionForward test1(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
String name = &深圳市&;
String password = &963963&;
String md5Value = MyUtils.getMD5(name+&#&+password);
System.out.println(md5Value);
这是md5加密方法:
public static String getMD5(String x) {
String s =
char hexDigits[] = {
// 用来将字节转换成 16 进制表示的字符
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd',
'e', 'f'};
java.security.MessageDigest md = java.security.MessageDigest.getInstance( &MD5& );
md.update( x.getBytes() );
byte tmp[] = md.digest();
// MD5 的计算结果是一个 128 位的长整数,
// 用字节表示就是 16 个字节
char str[] = new char[16 * 2];
// 每个字节用 16 进制表示的话,使用两个字符,
// 所以表示成 16 进制需要 32 个字符
int k = 0;
// 表示转换结果中对应的字符位置
for (int i = 0; i & 16; i++) {
// 从第一个字节开始,对 MD5 的每一个字节
// 转换成 16 进制字符的转换
byte byte0 = tmp[i];
// 取第 i 个字节
str[k++] = hexDigits[byte0 &&& 4 & 0xf];
// 取字节中高 4 位的数字转换,
// &&& 为逻辑右移,将符号位一起右移
str[k++] = hexDigits[byte0 & 0xf];
// 取字节中低 4 位的数字转换
s = new String(str);
// 换后的结果转换为字符串
}catch( Exception e )
e.printStackTrace();
中文的字符一直都有问题,如果是单纯的数字字符没有问题。求救呀!
共有7个答案
<span class="a_vote_num" id="a_vote_num_
需要制定为“utf-8”编码。md.update( x.getBytes(“utf-8”) );
<span class="a_vote_num" id="a_vote_num_
兄弟,你这个问题怎么解决的呀,我今天也见鬼了。
<span class="a_vote_num" id="a_vote_num_
引用来自“figer1”的答案 其实你两个结果都是对的,只不过一个是把字符串UTF8编码后的结果,&
因为中文已经不能转码了,可否把中文字符转byte数组类型,然后再转UTF-8就达到效果了?
<span class="a_vote_num" id="a_vote_num_
其实你两个结果都是对的,只不过一个是把字符串UTF8编码后的结果,&
<span class="a_vote_num" id="a_vote_num_
建议换个md5加密方法调用试试,比如Apache的加密
<span class="a_vote_num" id="a_vote_num_
引用来自“jorneyr”的答案去和网上的方法比较,如果你的结果不对,说明你的程序有错,不要问为什么。因为main方法执行的密文在网上是正确的。
<span class="a_vote_num" id="a_vote_num_
去和网上的方法比较,如果你的结果不对,说明你的程序有错,不要问为什么。
更多开发者职位上
有什么技术问题吗?
pileile...的其它问题
类似的话题

我要回帖

更多关于 c 字符串加密解密 的文章

 

随机推荐