Member 1187825 Ответов: 0

Как использовать строку массива для расшифровки столбца базы данных?


Добро пожаловать,

У меня есть строковый массив, содержащий некоторые ключи, используемые для расшифровки данных столбцов в базе данных. но только первое значение в столбце расшифровывается правильно.
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]);

// MessageBox.Show(" : value of job :" + v_JOBvalue + "decrypted using the key " + decryptedListKey);

/////////////////////////////////////////////////////////////////////////////////

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();

////////////////////////////////////////JOB/////////////////////////////////////

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();}}}


Что я уже пробовал:

У меня есть строковый массив, содержащий некоторые ключи, используемые для расшифровки данных столбцов в базе данных. но только первое значение в столбце расшифровывается правильно.

CHill60

Означает ли это, что другие не расшифрованы вообще или расшифрованы неправильно?

0 Ответов