亲啊嘴金,发布于:2010-09-07 14:23:53 | 849 浏览

PHP和JAVA的MD5和SHA1算法精简高效写法。

实际上来说算法都一样的。各种语言中的不同是因为细节处理不一样,微软C#就是典型。
MD5部分:
PHP写法:不用多说一个函数。
md5('http://qaz.kim/');
Java写法:需要多说,用我写的一个方法。
 public String Md5(String s) throws Exception {
  byte b[] = java.security.MessageDigest.getInstance("MD5").digest(s.getBytes());
  java.math.BigInteger bi = new java.math.BigInteger(1, b);
  String Kcvg_cn = bi.toString(16);
  while (Kcvg_cn.length() < 32){
   Kcvg_cn = "0" + Kcvg_cn;
  }
  return Kcvg_cn;//兼容中文哦
 }
 


SHA1部分(嵌套BASE64吧,很好理解)
PHP写法:也不要多说
base64_encode(sha1('http://qaz.kim', TRUE))
Java写法:需要多多说,还是用我写的办法,其实也可以一句话搞定。
new sun.misc.BASE64Encoder().encode(java.security.MessageDigest.getInstance("SHA1").digest("http://qaz.kim"
.getBytes()))//这句没办法兼容Google App Engine

看到这些你肯定汗颜了吧,网上抄的魅力真大啊。如果你看过三篇文章以上,你肯定看过那种java里面MD5加密用BASE64类,扔进去一个UTF-8编码的byte。要么就是new一个byte自己写算法的。写算法的不多评论,那只能证明它的C语言转向JAVA语言的能力太强了,殊不知JAVA是面向对象的编程语言呀。乱用BASE64类的。那我就得说他们真的够“扯”呀,逻辑和分析都有板有眼,实际上专研过了的就知道,可能她的思想上有点陷入死循环了,或者是各种语言混编习惯了。

  1. 上一篇:SAE的新浪云计算畅想