如何使用预处理语句在mysql数据库中编写AES加密查询 [英] How to write AES encrypt query in mysql database using prepared statement
本文介绍了如何使用预处理语句在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屋!
查看全文