如何使用预处理语句在mysql数据库中编写AES加密查询 [英] How to write AES encrypt query in mysql database using prepared statement

查看:100
本文介绍了如何使用预处理语句在mysql数据库中编写AES加密查询的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

<%@ page import="java.sql.*,databaseconnection.*"%>
<%
Connection con=null;
PreparedStatement psmt1=null;

String tit=request.getParameter("tit");
String min=request.getParameter("minvalue");
String max=request.getParameter("maxvalue");
String disc=request.getParameter("disc");
System.out.println(tit);
String [] title=tit.split(":");

try{
con=databasecon.getconnection();
String sql="insert into medication(tid,titname,minvalue,maxvalue,disc) values(AES_ENCRYPT(?, 'key'),AES_ENCRYPT(?, 'key'),AES_ENCRYPT(?, 'key'),AES_ENCRYPT(?,'key'),AES_ENCRYPT(?,'key'))";
System.out.println("Insert#"+sql);

psmt1=con.prepareStatement(sql);
psmt1.setString(1,title[0]);
psmt1.setString(2,title[1]);
psmt1.setString(3,min);
psmt1.setString(4,max);
psmt1.setString(5,disc);
psmt1.executeUpdate();

response.sendRedirect("providerhome.jsp?message=success");
}
catch(Exception ex)
{
out.println("Error in connection : "+ex);
}

%>





我尝试过:



这是我的代码,但没有插入表格。



What I have tried:

This is my code but which is not inserting into a table.

推荐答案

试试

{

Class.forName(com.mysql.jdbc.Driver);



连接con = DriverManager .getConnection(jdbc:mysql:// localhost:3306 / bank,root,system);



PreparedStatement stm = con.prepareStatement(插入newuserlogin(firstname,middlename,lastname,dateofbirth,emailid,mobile,username,password,confirmmpassword)值(?,?,?,?,?,?,?,aes_encrypt(?,'key'),aes_encrypt(? ,'key')));



stm.setString(1,name1);

stm.setString(2,name2) ;

stm.setString(3,name3);

stm.setString(4,dob);

stm.setString(5,email );

stm.setString(6,mobile);

stm.setString(7,username1);

stm.setString(8,密码1);

s tm.setString(9,password2);





int rs = stm.executeUpdate();

if(rs == 1)

{

request.setAttribute(success,success inserted);

RequestDispatcher rd = request .getRequestDispatcher(afterregistration.jsp);

rd.forward(request,response);



}



}



catch(例外e)

{

系统.out.println(e);

}





按预期工作:我的密码和确认密码已经以加密形式存储在数据库中。



来自sankalp sharma
try
{
Class.forName("com.mysql.jdbc.Driver");

Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/bank", "root", "system");

PreparedStatement stm=con.prepareStatement("insert into newuserlogin (firstname, middlename, lastname, dateofbirth, emailid, mobile, username, password, confirmpassword ) values(?, ?, ?, ?, ?, ?, ?, aes_encrypt(?,'key'), aes_encrypt(?,'key') )");

stm.setString(1, name1);
stm.setString(2, name2);
stm.setString(3, name3);
stm.setString(4, dob);
stm.setString(5, email);
stm.setString(6, mobile);
stm.setString(7, username1);
stm.setString(8, password1);
stm.setString(9, password2);


int rs= stm.executeUpdate();
if(rs==1)
{
request.setAttribute("success", "successfully inserted");
RequestDispatcher rd=request.getRequestDispatcher("afterregistration.jsp");
rd.forward(request, response);

}

}

catch(Exception e)
{
System.out.println(e);
}


It working as expected: My password and confirmpassword have stored in encrypted form in database.

from sankalp sharma


这篇关于如何使用预处理语句在mysql数据库中编写AES加密查询的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆