0
我試圖將加密數據插入到SQL表中。我試圖保存兩個隨機數字。這裏是我生成隨機數的代碼:使用參數C#加密SQL Server未正確保存
Random randomNumber = new Random();
int key1 = randomNumber.Next(10000000, 99999999);
Thread.Sleep(1000);
Random randomNumber2 = new Random(DateTime.Now.Second);
int key2 = randomNumber2.Next(10000000, 99999999);
然後我將它插入表中。這第一套代碼的作品,但我不能使用它,因爲它不適用於我的隨機數字。但它確實證實我有它基本上是正確的:
SqlCommand cmd = new SqlCommand(@"OPEN SYMMETRIC KEY KeyCodesKey DECRYPTION BY CERTIFICATE KeyCodes;
insert into keyfile(encrypted_key1, encrypted_key2, startingkeydate) values (EncryptByKey(Key_GUID('KeyCodesKey'), '19630515'), EncryptByKey(Key_GUID('KeyCodesKey'), '19520921'), CURRENT_TIMESTAMP)", cx);
int success = cmd.ExecuteNonQuery();
這是我更願意用代碼,但我似乎無法得到它的工作:
SqlCommand cmd = new SqlCommand(@"OPEN SYMMETRIC KEY KeyCodesKey DECRYPTION BY CERTIFICATE KeyCodes;
insert into keyfile(encrypted_key1, encrypted_key2, startingkeydate) values (EncryptByKey(Key_GUID('KeyCodesKey'), @key1), EncryptByKey(Key_GUID('KeyCodesKey'), @key2), CURRENT_TIMESTAMP)", cx);
cx.Open();
cmd.Parameters.AddWithValue("@key1",key1.ToString());
cmd.Parameters.AddWithValue("@key2", key2.ToString());
int success = cmd.ExecuteNonQuery();
我沒有得到任何錯誤,但是當我查看未加密的數據時,我只會得到一個數字。如果我硬編碼參數,它也不起作用。它只適用於實際的數字在SqlCommand中。
任何幫助或建議將不勝感激!