Welcome,
I have string array hold some keys used to decrypt column data in the database. but only the first value in the column is decrypted correctly.
private void button8_Click(object sender, EventArgs e)
{
this.txtKey.Hide();
this.lblkey.Hide();
OracleConnection conn;
using (conn = new OracleConnection(oradb))
{
OracleCommand select = new OracleCommand("select EMPNO, ENAME,JOB from EMP", conn);
conn.Open();
OracleDataReader reader = select.ExecuteReader();
Int64 v_empno = 0;
String v_JOBvalue = "";
String Decryptjob = "";
Enigma enigma = new Enigma();
if (reader.HasRows)
{
foreach (var item in KeyList)
{
int i = 0;
string[] the_array = new string[KeyList.Count];
while (reader.Read())
{
v_empno = reader.GetInt32(0);
v_JOBvalue = reader.GetString(2);
the_array[i] = item.ToString();
Decryptjob = enigma.Decrypt(v_JOBvalue, the_array[i]);
OracleCommand update = new OracleCommand("update EMP set JOB =:JOB where EMPNO =:EMPNO", conn);
OracleParameter JOB = new OracleParameter("JOB", Decryptjob);
OracleParameter EMPNO = new OracleParameter("EMPNO", v_empno);
update.Parameters.Add(JOB);
update.Parameters.Add(EMPNO);
update.ExecuteNonQuery();
i++;
}}
MessageBox.Show("User updated!");
OracleDataAdapter a = new OracleDataAdapter("select * from EMP", conn);
DataTable t = new DataTable();
a.Fill(t);
dataGridView1.DataSource = t;
reader.Close();
} } }
I assigned keylist on another button that encrypts values as shown
private void buttonencrypt_Click(object sender, EventArgs e)
{
this.txtKey.Hide();
this.lblkey.Hide();
OracleConnection conn;
using (conn = new OracleConnection(oradb))
{
int index = 0;
OracleCommand select = new OracleCommand("select empno,ENAME,job from emp", conn);
conn.Open();
OracleDataReader reader = select.ExecuteReader();
Int64 v_EMPNO = 0;
String v_JOBvalue = "";
String encryptjob = "";
if (reader.HasRows)
{
while (reader.Read())
{
v_EMPNO = reader.GetInt32(0);
v_JOBvalue = reader.GetString(2);
REA rea = new REA();
Enigma enigma = new Enigma();
KeyG = enigma.GenerateKey();
for (index = 0; index < v_JOBvalue.Length; index++)
{encryptjob = enigma.Encrypt(v_JOBvalue, KeyG);}
KeyList.Add(KeyG);
OracleCommand update = new OracleCommand("update EMP set JOB =:JOB where EMPNO =:EMPNO", conn);
OracleParameter Job = new OracleParameter("JOB", encryptjob);
OracleParameter empno = new OracleParameter("empno", v_EMPNO);
update.Parameters.Add(Job);
update.Parameters.Add(empno);
update.ExecuteNonQuery();
}
string s = String.Join(",", KeyList);
string msg = "";
foreach (string val in KeyList)
msg += val;
MessageBox.Show(msg);
MessageBox.Show("User updated!");
OracleDataAdapter a = new OracleDataAdapter("select * from emp", conn);
DataTable t = new DataTable();
a.Fill(t);
dataGridView1.DataSource = t;
reader.Close();}}}
What I have tried:
I have string array hold some keys used to decrypt column data in the database. but only the first value in the column is decrypted correctly.