2013-08-25 106 views
3

你好,我很好奇我怎麼能夠安全地從java連接到mysql。唯一我不能弄清楚的是如何保持純文本的密碼!任何幫助都很棒。安全地從Java連接到Mysql?

+1

*「我很好奇我如何能夠安全地從java連接到mysql。」*從什麼?客戶端桌面應用程序,servlet,鞋盒? –

+0

它會將一個java插件連接到我們的私人mysql服務器並不斷通信。 – BeastlyJman

回答

1

使用JDBC作爲數據庫連接。至於

保持密碼進行明文

怎麼做連接到它希望如果有明文密碼的地方?我會說只是使用一個生成的128位密碼,並加密。也許有一個屬性文件,你的程序加載不屬於該項目的一部分,然後從那裏獲取?

另一種方法是隻使用SSH認證,它將完全繞過密碼。

0

看的MessageDigest Class的文檔:

此MessageDigest類爲應用程序提供 消息的摘要算法的功能,如MD5或SHA。消息摘要是 安全的單向散列函數,它可以獲取任意大小的數據,並且 可輸出固定長度的散列值。

撥打getInstance("MD5")可以獲取您可以使用的MD5消息摘要。

-1

嗯,那不是那麼難。只需下載MYSQL連接器,將它添加到您的路徑,然後在其上火一個PreparedStatement,如:

Class.forName("com.mysql.jdbc.Driver"); 
Connection connect = DriverManager 
     .getConnection("jdbc:mysql://localhost/dbname?" 
      + "user=myusername&password=mypassword"); 
PreparedStatement preparedStatement = connect 
     .prepareStatement("select * from employees"); 
ResultSet resultSet = preparedStatement.executeQuery(); 

while (resultSet.next()) { 
    //display text 
} 
preparedStatement.close(); 
connect.close(); 

然後,您可以像做一個resultSet.getString()左右,以獲得所需的值,並將其投把它們變成你想要的任何東西,以防列數太多而且表格是不穩定的。如果不是,那麼你可以使用getInteger(),getDouble()等

查找更多看過來:

http://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html http://docs.oracle.com/javase/6/docs/api/java/sql/ResultSet.html

現在,你可以使用散列策略進行hash即掩蓋你的密碼。您可以將此代碼放入當前代碼鏈接到的另一個包中以獲取值。

https://crackstation.net/hashing-security.htm

6

了MySQL連接器/ J文檔This section介紹如何使用SSL和客戶端證書,以確保一個JDBC連接。這樣,你根本不需要使用密碼。

+0

你介意給出一個關於這將如何看待java的例子嗎?該網頁似乎顯示在一個更終端的風格?儘管已經感謝您的幫助! – BeastlyJman

+0

我不明白你在問什麼。如果您閱讀該頁面,則說明要執行的操作。 –

+0

當前版本的URL是http://dev.mysql.com/doc/connector-j/5.1/en/connector-j-reference-using-ssl.html。包含此信息的文檔部分是「使用SSL安全連接」,以防URL再次更改。請注意,此URL中的「5.1」不是MySQL版本,它是「Connector/J」版本號,並且是MySQL 5.7中的最新版本。 –