110,565
社区成员
发帖
与我相关
我的任务
分享
public static string Encrypt3DES(string a_strString, string a_strKey)
{
try
{
byte[] bt = (new System.Text.UnicodeEncoding()).GetBytes(a_strString);
PasswordDeriveBytes pdb = new PasswordDeriveBytes(a_strKey, null);
byte[] key = pdb.GetBytes(24);
byte[] iv = pdb.GetBytes(8);
MemoryStream ms = new MemoryStream();
TripleDESCryptoServiceProvider tdesc = new TripleDESCryptoServiceProvider();
CryptoStream cs = new CryptoStream(ms, tdesc.CreateEncryptor(key, iv), CryptoStreamMode.Write);
cs.Write(bt, 0, bt.Length);
cs.FlushFinalBlock();
return Convert.ToBase64String(ms.ToArray());
}
catch (Exception ex)
{
throw ex;
}
}
FUNCTION Encrypt_3key_Mode
(
Ivalue IN VARCHAR2,
Imode IN PLS_INTEGER
) RETURN RAW AS
Vencrypted VARCHAR2(4000);
Vencryptedraw RAW(2048);
Rawkey RAW(240) := '';
BEGIN
Rawkey := Gen_Raw_Key(Ikey); -- encrypt input string
Vencrypted := Dbms_Obfuscation_Toolkit.Des3encrypt(Formatstr(Ivalue),
Key_String => Rawkey,
Which => Imode);
-- convert to raw as out
Vencryptedraw := Utl_Raw.Cast_To_Raw(Vencrypted);
RETURN Vencryptedraw;
EXCEPTION
WHEN OTHERS THEN
RETURN NULL;
END Encrypt_3key_Mode;