① 如何對Oracle存儲過程加密
在PL/SQLdeveloper中先執行包頭、然後再wrap加密包體
SQL>createorreplacepackagepkg_wrap_testis
2--測試過程,將輸入的數字以字元格式輸出
3proceretest1(iinnumber);
4ENDpkg_wrap_test;
5/
② 關於oracle資料庫加密的函數
在程序裡面把密碼加密之後保存到資料庫就好了。/摳鼻
③ 求大神用java實現RC4的加密,解密功能,高分懸賞.
importjavax.crypto.Cipher;
importjavax.crypto.spec.SecretKeySpec;
importjavax.xml.bind.DatatypeConverter;
publicclassTest{
publicstaticvoidmain(String[]args)throwsException{
Ciphercipher=Cipher.getInstance("RC4");
Stringpwd="123456";
Stringptext="HelloWorld你好";
SecretKeySpeckey=newSecretKeySpec(pwd.getBytes("UTF-8"),"RC4");
cipher.init(Cipher.ENCRYPT_MODE,key);
byte[]cdata=cipher.update(ptext.getBytes("UTF-8"));
//解密
cipher.init(Cipher.DECRYPT_MODE,key);
byte[]ddata=cipher.update(cdata);
System.out.println("密碼:"+pwd);
System.out.println("明文:"+ptext);
System.out.println("密文:"+DatatypeConverter.printHexBinary(cdata));
System.out.println("解密文:"+newString(ddata,"UTF-8"));
}
}
密碼:123456
明文:HelloWorld你好
密文:
解密文:HelloWorld你好
RC4已經不太安全,只能用於一般加密,不能用於金融等緊要場合。
④ 如何對Oracle中的PL/SQL源碼進行加密
可以使用wrap 工具或者DBMS_DDL子程序對PL/SQL源碼進行加密。wrap工具加密單個源文件,如SQL*Plus腳本。DBMS_DDL子程序加密單個動態生成的PL/SQL單元,如一個CREATE PROCEDURE聲明。加密的源文件可以移動,備份,可被SQL*Plus和Improt和Export工具處理,但在靜態數據字典視圖*_SOURCE中無法看到源碼。 WRAP語法 wrap iname=input_file [oname=output_file ] 可省略文件擴展名,如以下的命令是等同的: wrap iname=/mydir/myfile wrap iname=/mydir/myfile.sql 輸出文件默認的擴展名為.plb,當然你也可以指定不同的文件名和擴展名。 wrap iname=/mydir/myfile oname=/yourdir/yourfile.out wrap主要是混淆PL/SQL語句的主體部分,如下CREATE語句可以被加密: CREATE [OR REPLACE] FUNCTION function_name CREATE [OR REPLACE] PROCEDURE procere_name CREATE [OR REPLACE] PACKAGE package_name CREATE [OR REPLACE] PACKAGE BODY package_name CREATE [OR REPLACE] TYPE type_name AS OBJECT CREATE [OR REPLACE] TYPE type_name UNDER type_name CREATE [OR REPLACE] TYPE BODY type_name CREATE [OR REPLACE] TRIGGER語句不能被加密,但你可調用加密的過程。加密文件中除了語句頭部和C風格(/*…*/)注釋外,其它所有注釋被刪除。
⑤ 可以給我一個用RC4加密明文的例子嗎 謝謝啊
運行環境:Microsoft Visual Studio 6.0
語言:C++
#include<stdio.h>
#include<string>
void decrypt(char cipher[]);///////////////////////////////解密過程函數,根據輸入密鑰再一次生成密鑰流
void main()
{
printf("**************************RC4加解密程**************************\n");
char choose1,choose2;
do{
int s[256],t[256];
char k[256];/////////////////用戶輸入的密鑰
char plaintext[1024],ciphertext[1024];
printf("輸入密鑰:\n");
gets(k);
for(int i=0;i<256;i++)//////////////給位元組狀態矢量和可變長的密鑰數組賦值
{
s[i]=i;
t[i]=k[i%strlen(k)];
}
int j=0;
for(i=0;i<256;i++) //////使用可變長的密鑰數組初始化位元組狀態矢量數組s
{
int temp;
j=(j+s[i]+t[i])%256;
temp=s[i];
s[i]=s[j];
s[j]=temp;
}
printf("\n輸入要加密的字元串:\n");
gets(plaintext);
int m,n,key[256],q;
m=n=0;
printf("\n得到密文:\n");
for(i=0;i<strlen(plaintext);i++)/////////////由位元組狀態矢量數組變換生成密鑰流並對明文字元進行加密
{
int temp;
m=(m+1)% 256;
n=(n+s[n])% 256;
temp=s[m];
s[m]=s[n];
s[n]=temp;
q=(s[m]+s[n])%256;
key[i]=s[q];
ciphertext[i]=plaintext[i]^key[i];
printf("%c",ciphertext[i]);
}
ciphertext[i]='\0';
//解密
printf("\n是否對上面的密文進行解密?(y/n)\n");
scanf("%c",&choose2);
getchar();
while(choose2=='y'||choose2=='Y')
{
decrypt(ciphertext);///////////////////////////////解密過程函數
choose2='n';
}
printf("\n是否希望繼續使用程序?(y/n)\n");
scanf("%c",&choose1);
getchar();
}
while(choose1=='y'||choose1=='Y');
printf("\n****************************程序結束*****************************");
system("pause");
}
//解密函數,密鑰流的生成與加密相同
void decrypt(char cipher[])
{
int s[256],t[256];
int i;
char k[256];/////////////////用戶輸入的密鑰
char plaintext[1024];
printf("\n輸入密鑰:\n");
gets(k);
for(i=0;i<256;i++)//////////////給位元組狀態矢量和可變長的密鑰數組賦值
{
s[i]=i;
t[i]=k[i%strlen(k)];
}
int j=0;
for(i=0;i<256;i++) //////使用可變長的密鑰數組初始化位元組狀態矢量數組s
{
int temp;
j=(j+s[i]+t[i])%256;
temp=s[i];
s[i]=s[j];
s[j]=temp;
}
int m,n,key[256],q;
m=n=0;
printf("\n解密後所得到明文是:\n");
for(i=0;i<strlen(cipher);i++)/////////////由位元組狀態矢量數組變換生成密鑰流並對密文字元進行解密
{
int temp;
m=(m+1)% 256;
n=(n+s[n])% 256;
temp=s[m];
s[m]=s[n];
s[n]=temp;
q=(s[m]+s[n])%256;
key[i]=s[q];
plaintext[i]=cipher[i]^key[i];
printf("%c",plaintext[i]);
}
printf("\n");
}
⑥ oracle觸發器實現對表內容的加密
直接調用函數加密就行了。
主要是你拿數據的時候,需要解密比較麻煩。
⑦ oracle怎麼實現非對稱加密
oracle怎麼實現非對稱加密
: author:CH date:2015 theme:oracle TDE test */ 一透明加密(TDE, Transparent Data Encryption)
⑧ RC4的RC4加密演算法
RC4加密演算法是大名鼎鼎的RSA三人組中的頭號人物Ronald Rivest在1987年設計的密鑰長度可變的流加密演算法簇。之所以稱其為簇,是由於其核心部分的S-box長度可為任意,但一般為256位元組。該演算法的速度可以達到DES加密的10倍左右,且具有很高級別的非線性。RC4起初是用於保護商業機密的。但是在1994年9月,它的演算法被發布在互聯網上,也就不再有什麼商業機密了。RC4也被叫做ARC4(Alleged RC4——所謂的RC4),因為RSA從來就沒有正式發布過這個演算法。
⑨ 如何利用Oracle自帶的MD5對數據進行加密
1、DBMS_OBFUSCATION_TOOLKIT.MD5是MD5編碼的數據包函數
CREATE OR REPLACE FUNCTION MD5(passwd IN VARCHAR2)
RETURN VARCHAR2
IS
retval varchar2(32);
BEGIN
retval := utl_raw.cast_to_raw(DBMS_OBFUSCATION_TOOLKIT.MD5(INPUT_STRING => passwd)) ;
RETURN retval;
END;
select md5('123456') from al;
MD5('123456')
2、DES加密
create or replace function
encrypt_des(p_text varchar2, p_key varchar2) return varchar2 is
v_text varchar2(4000);
v_enc varchar2(4000);
raw_input RAW(128) ;
key_input RAW(128) ;
decrypted_raw RAW(2048);
begin
v_text := rpad( p_text, (trunc(length(p_text)/8)+1)*8, chr(0));
raw_input := UTL_RAW.CAST_TO_RAW(v_text);
key_input := UTL_RAW.CAST_TO_RAW(p_key);
dbms_obfuscation_toolkit.DESEncrypt(input => raw_input,key => key_input,encrypted_data =>decrypted_raw);
v_enc := rawtohex(decrypted_raw);
dbms_output.put_line(v_enc);
return v_enc;
end;
DES加密:
update tb_salarysign_staff s set s.staffpwd =encrypt_des(s.staffpwd, 'test#5&124*!de');
3、DES解密函數
create or replace function decrypt_des(p_text varchar2,p_key varchar2) return varchar2 is
v_text varchar2(2000);
begin
dbms_obfuscation_toolkit.DESDECRYPT(input_string => UTL_RAW.CAST_TO_varchar2(p_text),key_string =>p_key, decrypted_string=> v_text);
v_text := rtrim(v_text,chr(0));
dbms_output.put_line(v_text);
return v_text;
end;
DES解密:select decrypt_des(s.staffpwd, 'test#5&124*!de') from tb_salarysign_staff s;
⑩ oracle 欄位加密
這是程序加密的,具體的你要看代碼採用的是什麼加密演算法,常見的是MD5加密