美國國家標準技術研究所在2023年發布了高階加密標準(aes)。aes是乙個對稱分組密碼演算法,旨在取代des成為廣泛使用的標準。
aes加解密的流程圖如下:
實現aes加解密的儲存過程**如下:
-- 加密
create or replace function fun_aesencrypt(
v_str varchar2 ,
v_key varchar2
)return varchar2
as v_key_raw raw(128);
v_str_raw raw(512);
v_return_str varchar2(512);
v_type pls_integer ;
begin
v_key_raw := utl_i18n.string_to_raw(v_key,'utf8') ;
v_str_raw := utl_i18n.string_to_raw(v_str,'utf8') ;
v_type := dbms_crypto.encrypt_aes256+dbms_crypto.chain_cbc+dbms_crypto.pad_pkcs5 ;
v_str_raw := dbms_crypto.encrypt(src => v_str_raw , typ => v_type, key => v_key_raw) ;
v_return_str := rawtohex(v_str_raw);
return v_return_str;
end;
grant execute on dbms_crypto to welf;
update operator a set a.loginname = utl_raw.cast_to_varchar2(utl_encode.base64_encode(fun_aesencrypt(a.loginname,'0123456789abcdef0123456789abcdef')))
where a.loginname is not null;
update customer a set a.mobile = utl_raw.cast_to_varchar2(utl_encode.base64_encode(fun_aesencrypt(a.mobile,'0123456789abcdef0123456789abcdef')))
where a.mobile is not null;
update t_order_info a set a.phone_no =utl_raw.cast_to_varchar2(utl_encode.base64_encode(fun_aesencrypt(a.phone_no,'0123456789abcdef0123456789abcdef')))
where a.phone_no is not null;
----- 解密
create or replace function fun_decryption(
v_str varchar2 ,
v_key varchar2
)return varchar2
as v_key_raw raw(128);
v_str_raw raw(512);
v_return_str varchar2(512);
v_type pls_integer;
begin
v_key_raw := utl_i18n.string_to_raw(v_key,'utf8');
v_str_raw := hextoraw(v_str);
v_type := dbms_crypto.encrypt_aes256+dbms_crypto.chain_cbc+dbms_crypto.pad_pkcs5;
v_str_raw := dbms_crypto.decrypt(src => v_str_raw , typ => v_type, key => v_key_raw );
v_return_str := utl_i18n.raw_to_char(v_str_raw,'utf8');
return v_return_str ;
end;
基於aes的加解密方案
對前端上送的報文進行解密和驗籤 1 前端上送的報文先進行整體加密,然後把整體加密的資料作為encodefieldvals的值 同時前端一起上送到後端的資料報括整體加密的aeskey 前端請求後端的例子 2 後端獲取encodefieldvals和aeskey的值,使用aeskey對encodefie...
基於openssl的AES加解密
對於加解密,企業常用的有aes和rsa,它們分別是對稱加解密演算法和非對稱加解密演算法的代表,這裡主要封裝了php的一套基於openssl的aes加解密實現類 created by phpstorm.user 小小徐 date 2019 4 21 time 18 11 class baseaes 校...
AES加解密演算法的模式介紹
一般的加密通常都是塊加密,如果要加密超過塊大小的資料,就需要涉及填充和鏈加密模式,文中提到的ecb和cbc等就是指鏈加密模式。這篇文件比較形象地介紹了aes加密演算法中的一些模式 過來。注意,還缺一種ctr的模式。同時在文章的最後,貼出幾對利用ecb and cbc模式得標準演算法得到的碼流串。對稱...