0

mysql データベースに暗号化されたパスワードを保存したいと考えています。

ari のようにパスワードを挿入した場合、B-dd2c1cd0250859d32754fdd85ffc0531 のようにパスワードを保存する必要があります。

しかし、データを挿入する必要があります ( ari ) は、データベースに ari が表示されることを意味します。パスワードを暗号化して、上記の形式のようにパスワードを保存するにはどうすればよいですか。

例: ari は、B-dd2c1cd0250859d32754fdd85ffc0531 の形式でデータベースに保存されます。

私はコードを書きました:

public class Insert {

   public String insertData(String userName,String userPassword){

   try{

   Class.forName("com.mysql.jdbc.Driver");
  Connection con =  DriverManager.getConnection("jdbc:mysql://server:3306/android","XXXX","XXX");
   PreparedStatement statement =  con.prepareStatement("INSERT INTO xcart_customers(login,password) VALUES ('"+userName+"','"+userPassword+"');");
       int result = statement.executeUpdate();
       }

          catch(Exception exc){
            System.out.println(exc.getMessage());
          }

          return "Insertion successfull!!";
        }}

これは私の Demo.java クラスです:

public class Demo {
public static void main(String[] args){
    Insert obj = new Insert();
    System.out.println(obj.insertData("krishna", "ari"));
   }
  }
4

3 に答える 3

0

パスワードのハッシュとソルティングを確認する必要があります。この投稿を見てください。

編集:

ハッシュは一方向であることを忘れないでください。そのため、ハッシュ値をクリア テキスト (この場合は ari) に戻すことは期待できません。できることは、ログインが機能するときに、ユーザーが入力した値がデータベースの値と等しいかどうかを確認できることです。

于 2012-12-14T11:42:35.167 に答える
0

既存のデータの暗号化にどのスキームが使用されたかを知らなければ、互換性を実現する方法を知る方法はありません。最初からやり直すことができる場合は、bcrypt が最適です

于 2012-12-14T11:47:28.373 に答える
0

SQLクエリINSERT INTO xcart_customers(login,password)を見ると、X-CARTのパスワードを暗号化しようとしていると思います.

X-CART は Blowfish キーベースの暗号化を使用します。キーは config.php ファイルから見つけることができます。

これは、フグを暗号化する方法を理解するのに役立つ可能性があるJavaのキーでフグを暗号化することに関するすでに回答された質問です

Java での BlowFish による暗号化

于 2012-12-14T11:49:36.973 に答える