解密后的密文有时候时空字符串那样子?解密用getMD50fStr(),会有空字符吗?从来没碰到那个算法如果会生成空字符的话,还能叫加密吗?不会是搂主显示时的问题吧。

解决方案 »

  1.   

    strsql = "select pkid,DEPID,USERNAME from tuser where password=rtrim(ltrim('"+md5.getMD5ofStr(password)+"')) and USERNAME=rtrim(ltrim('"+username+"'))";//增加了MD5加密的语句
      

  2.   

    谢谢大家!我的QQ;24404614
    请把源码给我可以吗?
    [email protected]
    des 加密和解密  和 md5的源码
      

  3.   

    各位能把 用des 加密和解密的bean 贴出来码?
      

  4.   

    以下是该文件的详细代码: package com.pechinsoft.util; import java.security.*; 
    import javax.crypto.*; public class WriteOffDES { 
       private String Algorithm = "DES";    public WriteOffDES() { 
          init(); 
       }    public void init() { 
          Security.addProvider(new com.sun.crypto.provider.SunJCE()); 
          try { 
               keygen = KeyGenerator.getInstance(Algorithm); 
               deskey = keygen.generateKey(); 
               c = Cipher.getInstance(Algorithm); 
          } 
          catch(NoSuchAlgorithmException ex) {ex.printStackTrace();} 
          catch(NoSuchPaddingException ex) {ex.printStackTrace();} 
       }    public byte[] encrypt(String e) { 
          try { 
               c.init(Cipher.ENCRYPT_MODE, deskey); 
               cipherByte = c.doFinal(e.getBytes()); 
          } 
          catch(java.security.InvalidKeyException ex){ex.printStackTrace();} 
          catch(javax.crypto.BadPaddingException ex){ex.printStackTrace();} 
          catch(javax.crypto.IllegalBlockSizeException ex){ex.printStackTrace();}       return cipherByte; 
       }    public String decrypt(byte[] d) { 
          try { 
               c.init(Cipher.DECRYPT_MODE, deskey); 
               cipherByte = c.doFinal(d); 
          } 
          catch(java.security.InvalidKeyException ex){ex.printStackTrace();} 
          catch(javax.crypto.BadPaddingException ex){ex.printStackTrace();} 
          catch(javax.crypto.IllegalBlockSizeException ex){ex.printStackTrace();}       return (new String(cipherByte)); 
       }    public String byteTohex(byte[] b) { 
          String str = ""; 
          String stmp = ""; 
          for(int n=0;n<b.length;n++) { 
    stmp=(java.lang.Integer.toHexString(b[n] & 0XFF)); 
    if(stmp.length()==1) str = str + "0" + stmp; 
    else str = str + stmp; 
    if(n<b.length-1) str = str + ":"; 

    return str.toUpperCase(); 
    } private KeyGenerator keygen; 
    private SecretKey deskey; 
    private Cipher c; 
    private byte[] cipherByte; 
    } 附运用方法: 
    <%--TestDES.jsp--%>  <%@ page contentType="text/html; charset=gb2312" %>  
    <jsp:useBean id="DES" scope="page" class="com.pechinsoft.util.WriteOffDES" />  
    <html>  
    <head><title>TestDES File</title></head>  <body bgcolor="#FFFFFF">  
    <div align="center"><center>  
        <% 
    String Num = request.getParameter("Num"); 
    if(Num==null || Num.equals("")) { 
    %>  
        <form name="form" action="TestDES.jsp" method="post">  
        <input type="text" name="Num" size="25" value=""/>  
        <input type="submit" name="button" value=" 确定 "/>  
        </form>  
        <% 
    }else{ 
    out.println("加密前的数据:"+Num +"<br/>");  
                out.println("加密后的数据:"+DES.encrypt(Num) +"<br/>");  
                out.println("解密后的数据:"+DES.decrypt(DES.encrypt(Num)) +"<br/>");  
          }  
        %>  
    </center></div>  
    </body>  
    </html> 
      

  5.   

    用MD5 有现成的MD5加密的类 网上有
      

  6.   

    java本身就自己带md5库,好像在security下
      

  7.   

    对:playboylee(老婆说我是最棒的) , pifulu(匹夫),craks() ;
    我用的的des 对帐号加密,但为什么每次的密文(或许我用了64 位编码)都不同,想用户登陆的时候比对密文。怎么解决?