早上好,尝试将加密数据插入数据库时出现此错误
现在这是我的Encryption
脚本
public void Encrypt(TextBox txtEncrypt, string hash, byte[] results)
{
hash = "placeholder";
byte[] data = UTF8Encoding.UTF8.GetBytes(txtEncrypt.Text);
using (MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider())
{
byte[] keys = md5.ComputeHash(UTF8Encoding.UTF8.GetBytes(hash));
using (TripleDESCryptoServiceProvider tripDes = new TripleDESCryptoServiceProvider() { Key = keys, Mode = CipherMode.ECB, Padding = PaddingMode.PKCS7 })
{
ICryptoTransform transform = tripDes.CreateEncryptor();
results = transform.TransformFinalBlock(data, 0, data.Length);
txtEncrypt.Text = Convert.ToBase64String(results, 0, results.Length);
//MessageBox.Show("Encryption :" + Convert.ToBase64String(results,0,results.Length));
}
}
}
现在我正在像这样的另一个类上实现它
private void btnRegister_Click(object sender, EventArgs e)
{
try
{
//Best practice in c# to interact with database (using statement)
using (MySqlConnection mysqlCon = new MySqlConnection(connection.connectionString))
{
mysqlCon.Open();
//Add the stored procedure that we uses in the mysqlworkbench
MySqlCommand mysqlCmd = new MySqlCommand("LoginAdd", mysqlCon);
mysqlCmd.CommandType = CommandType.StoredProcedure;
//Use trim to avoid spaces
method.Encrypt(textBox2,hash,results);
mysqlCmd.Parameters.AddWithValue("_LoginID", LoginID);
mysqlCmd.Parameters.AddWithValue("_LoginUser", textBox1.Text.Trim());
mysqlCmd.Parameters.AddWithValue("_LoginPass", textBox2);
mysqlCmd.ExecuteNonQuery();
MessageBox.Show("Registered Succesfully");
//proceed to login page
this.Hide();
method.ConstantLoginForm();
}
}
catch(Exception ex)
{
MessageBox.Show(""+ ex);
}
}
我已经搜索了一些数据,并且找到了。
我尝试这样做,但是什么也没发生
答案 0 :(得分:1)
将_LoginPass列的大小设置为varchar(50)或更大。
答案 1 :(得分:0)
正如查尔斯·梅说的那样,我已经离开了.Text
部分,正在尝试传递该对象。
所以我只需要更改此部分
mysqlCmd.Parameters.AddWithValue("_LoginPass", textBox2);
像这样的代码
mysqlCmd.Parameters.AddWithValue("_LoginPass", textBox2.Text.Trim());