對訂單進行加密解密的方法

2021-08-22 08:37:07 字數 3584 閱讀 2808

// 加密演算法

privatestatic

string

algo

= "aes";

// 轉換模式(「演算法/工作模式/填充模式」)

privatestatic

string

transformation

= "aes/cbc/nopadding";

privatestatic

string

algo_mode

= "aes/cbc/nopadding";

privatestatic

string

akey

= " sdfe1***38dd12d4";

privatestatic

string

aiv=

"0321ebe***1f75de2";

/** *

*@param

data

*            傳過來的資料:data=id+「,」+「price」,「timestamp」

*@param

akey

*            定義秘鑰規範所需要的引數

*@param

aiv

*            定義秘鑰引數規範需要的引數哦

*@return

*@throws

exception */

publicstatic

stringencrypt

(string

data

, string

akey

, string

aiv)throws

exception

// 已更改後的自己陣列的長度為單位new乙個新的位元組陣列

byte

plaintext

=newbyte

[plaintextlength];

// databytes被複製的陣列,0:被複製陣列的起始位置,

plaintext

:備用陣列(databytes裡的內容要被複製在這個陣列裡面);databytes.length:被複製陣列的長度

system

.arraycopy

(databytes, 0

, plaintext, 0

, databytes

.length);

// 上述**的意思是指把databytes陣列裡的內容從0的位置到最後的位置全部複製到

plaintext

陣列中,其主要目的就是讓databytes陣列的長度對加密解密類的塊的大小取模之後的值為0

// 把秘鑰打成乙個位元組陣列,採用"aes"的演算法構建乙個秘鑰規範(secretkeyspec為秘鑰規範類他實現了keyspec介面)

secretkeyspeckeyspec

=new

secretkeyspec(

akey

.getbytes(

"utf-8"

), algo);

// iv的作用主要是用於產生密文的第乙個block,以使最終生成的密文產生差異(明文相同的情況下),使密碼攻擊變得更為困難,除此之外iv並無其它用途,因此iv通過隨機方式產生,是簡便有效的途徑

// ivparameterspec主要是用來規範加密引數的乙個實現類

ivparameterspecivspec

=new

ivparameterspec(

aiv.getbytes(

"utf-8"

));

// 初始化加密解密的類cipher.encrypt_mode:表明這個加密解密的類主要功能是加密,

keyspec

:秘鑰規範;

ivspec

:加密引數的規範

cipher

.init(

cipher

.encrypt_mode

, keyspec

, ivspec);

// 對資料進行最終處理,生成乙個新的陣列即被加密後的陣列

byte

encrypted

= cipher

.dofinal(

plaintext);

// 把加密後的位元組陣列進行base64進行編碼,編碼後形成新的字串

stringencstr

=new

sun.misc.base64encoder().encode(

encrypted);

return

encstr;

}catch

(exceptione)

} /** *

*@param

encrypteddata

*            被加密的資料

*@param

akey

*            秘鑰規範類所需要的引數

*@param

aiv

*            秘鑰引數規範類所需要的引數

*@return

被解密的字串

*@throws

exception */

publicstatic

stringdecrypt

(string

encrypteddata

, string

akey

, string

aiv)throws

exception

catch

(exceptione)

}

對字串進行加密解密

create view v rand asselect c unicode cast round rand 255,0 as tinyint go create function f jmstr str varchar 8000 type bit returns varchar 8000 引數說明 ...

對Url傳輸引數進行加密和解密

最近做乙個論壇入口時要實現帳號和密碼不在ie位址列出現而做的 index.aspx.cs 加密處理 byte iv64 byte bykey64 public string encrypt string strtext catch exception ex private void btnlogin...

怎樣對字串進行加密 解密

譯者的話 該文介紹了一種直接呼叫 cryptoapi 函式對字串進行加密和解密的用法,非常簡單 實用。其中,有作者所封裝的乙個加密 解密類,是可以直接復用的原始碼,我想是能夠解決我們的一些實際問題的。而且,將初始化函式封裝在建構函式中,也顯得比較巧妙,對於初學者不失為一篇好的教材。1 初始化 cry...