当然是不能够转换成为String,因为这样就会出现损失了
你一定要变成String,可以先做一次Base64Encode

解决方案 »

  1.   

    如果不转成string的,我怎么把密文寸入数据库啊?另外是否byte转成string,string转成byte都会出现损失啊?有没有不损失的转换方法啊??
      

  2.   

    我根据上面又写了一个类,是把字符型通过BASE64编码后与byte转换,可是解密的函数运行出错,不知道是什么原因??package util;//import java.sql.*;
    //import java.io.*;
    //import java.util.*;
    //import java.lang.*;
    import sun.misc.*;public class Password
    {
    Encrypt enc=new Encrypt("123456");
    BASE64Encoder encoder = new BASE64Encoder();
    BASE64Decoder decoder = new BASE64Decoder();

    private String de_password =""; //密文的字符串形式
    private String en_password =""; //明文的字符串形式 public void Password()
    {}
    public String encode(String enpassword)
    {
    byte[] de_byte = enc.encode(enpassword.getBytes()); //数据加密部分
    this.de_password=encoder.encode(de_byte); //用base64转成字符型
    return this.de_password;
    }

    public String decode(String depassword)
    {
    byte[] en_byte = decoder.decodeBuffer(depassword); //用base64转成byte型
    byte[] password_byte = enc.decode(en_byte); //数据解密部分
    this.en_password = new String(password_byte); //把byte转成string
    return this.en_password;
    }

    }
      

  3.   

    调用这个类显示错误如下:500 Servlet Exception
    C:\AgeHouse\classes\util\Password.java:45: unreported exception java.io.IOException;
    must be caught or declared to be thrown
    byte[] en_byte = decoder.decodeBuffer(depassword);^
    1 error
      

  4.   

    呵呵,解决了~忘记了try{}catch{}多谢各位~~~~接分~~~~~`