我嘗試將加密的「密碼文本」保存到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詮釋不爲空,
)
顯示一些代碼,顯示您的保存和接收過程。 – Austin
確定:D已編輯。 – Takami