2012-10-12 21 views
0

我嘗試將加密的「密碼文本」保存到SQL Server 2008r2數據庫時出現問題。當我從Java-Netbeans保存時,sql收到「?????」在文本字段中,我發現這是因爲或unicode ...我使用BLOWFISH加密(該類完美)但我無法解密它,因爲我從DB「????」文本,而不是原始文本(密碼)解密來自數據庫的unicode文本

你知道如何解決這個問題?朋友叫上使用DB而不是「VARCHAR」「VARBINARY」,但不知道該怎麼做:S

感謝

public boolean SavetoDB() { 
    DATABASE_CONNECTION con = new DATABASE_CONNECTION(); 
    cn = con.conectar(); 

    boolean resp = false; 
    try { 
     String sql = "INSERT INTO cliente(usuario, pass, Nombre, Apellido, Edad," 
       + "genero, Direccion, Telefono, Celular, img_name,tipo_cuenta, ipaddress, puerto,segundos,minutos,horas)" 
       + " VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,?,?,?,?,?)"; 
     PreparedStatement cmd = cn.prepareStatement(sql); 
     cmd.setString(1, usuario); 
     cmd.setString(2, pass); 
     cmd.setString(3, Nombre); 
     cmd.setString(4, Apellido); 
     cmd.setInt(5, Edad); 
     cmd.setString(6, genero); 
     cmd.setString(7, Direccion); 
     cmd.setInt(8, Telefono); 
     cmd.setInt(9, Celular); 
     cmd.setString(10, nombrearch); 
     cmd.setString(11, tipo_cuenta); 
     cmd.setString(12, ip); 
     cmd.setString(13, puerto); 
     cmd.setInt(14, 1); 
     cmd.setInt(15, 0); 
     cmd.setInt(16, 0); 
     //////////////////////////////////////////////////////// 
     /////////////////////////////////////////////////////// 


     if (!cmd.execute()) { 
      resp = true; 
     } 
     cmd.close(); 
     cn.close(); 
    } catch (Exception ex) { 
     System.out.println("Error: " + ex.getMessage()); 
    } 
    return resp; 
} 

SQL表:

創建表cliente(

usuario VARCHAR(15)NOT NULL主鍵,

通VARCHAR(90)不爲空,

農佈雷VARCHAR(32)不爲空,

Apellido VARCHAR(32)不爲空,

EDAD詮釋不爲空,

的Genero VARCHAR (15)不爲空,

Direccion VARCHAR(32),

Telefono INT,

Celular INT,

img_name VARCHAR(32)不爲空,

tipo_cuenta VARCHAR(15)不爲空,

fecha_creacion日期,

IPADDRESS VARCHAR(20)不爲空,

波多黎各VARCHAR(30)不爲空,

Segundo的小號詮釋不爲空,

minutos詮釋不爲空,

horas詮釋不爲空,

+0

顯示一些代碼,顯示您的保存和接收過程。 – Austin

+0

確定:D已編輯。 – Takami

回答

1

儘量節省MD5/SHA消化在數據庫中的密碼文本的字節。當您需要檢查密碼時,計算輸入密碼的摘要並與數據庫中的密碼進行比較。