以下所有的加密解密都是放在Crypt這個(gè)靜態(tài)類下面的靜態(tài)方法。我們想用的話就直接使用即可。
Name | Description |
Base64StringToBytes | 根據(jù)Base64字符串返回一個(gè)Byte數(shù)組。 |
BytesToBase64String | 根據(jù)一個(gè)Byte數(shù)組返回一個(gè)Base64字符串。 |
BytesToFile | Byte數(shù)組轉(zhuǎn)換成文件。 |
BytesToHexString | Byte數(shù)組轉(zhuǎn)十六進(jìn)制字符。 |
CRC16 | 返回字符串的CRC16驗(yàn)證碼。 |
DateToJavaScriptDateTime | .Net日期轉(zhuǎn)換成JavaScript日期。 |
DecryptDataAES | |
DecryptFileDES | DES解密文件。 |
DecryptText | DES解密文本 |
DecryptTextAES | AES解密文本。 |
DecryptTextDES(String, String) | DES解密文本。 |
DecryptTextDES(String, String, String) | DES解密文本。 |
DecryptTextRSA | 用私鑰解密文本。 |
EncryptDataAES | |
EncryptFileDES | DES加密文件。 |
EncryptText | DES加密文本.兩個(gè)密鑰,返回的文本轉(zhuǎn)Base64字符串。 |
EncryptTextAES | AES加密文本。 |
EncryptTextDES(String, String) | DES加密文本。返回的文本轉(zhuǎn)Base64字符串。 |
EncryptTextDES(String, String, String) | DES加密文本。返回的文本沒有轉(zhuǎn)Base64字符串。 |
EncryptTextRSA | 用公鑰加密文本。 |
FileToBytes | 將文件轉(zhuǎn)換成Byte數(shù)組。 |
GenerateRSAKeyString | 生成RSA的一對(duì)密鑰。 |
GetFileFromBase64String | 從Base64字符串獲得一個(gè)文件。 |
GetFileFromHexString | 從十六進(jìn)制字符串獲得一個(gè)文件。 |
GetFileToBase64String | 返回文件的Base64字符串。 |
GetFileToHexString | 返回文件的十六進(jìn)制字符串。 |
GetTextFromBase64String | 從Base64字符串獲得一個(gè)文本。 |
GetTextFromHexString | 從十六進(jìn)制字符串獲得一個(gè)文本。 |
GetTextToBase64String | 返回文本的Base64字符串。 |
GetTextToHexString | 返回文本的十六進(jìn)制字符串。 |
HexStringToBytes | 將十六進(jìn)制字符轉(zhuǎn)化成字節(jié)數(shù)組。 |
JavaScriptDateTimeToDate | JavaScript日期轉(zhuǎn)換成.Net日期。 |
MD5ForFile | 返回文件的MD5值。 |
MD5ForString | 返回指定文本的MD5字符串。 |
ToHMACSHA1 | 將字符串轉(zhuǎn)換成HMACSHA1 |
Vb.Net |
Dim str As String="要加密的文本信息" '常規(guī)的用法就兩種 '加密文本,使用兩個(gè)密鑰。 Dim strEncrypt As String=Crypt.EncryptText(str,"key1abcd","key2abcd") Proj.MsgDebug.Add(strEncrypt) '返回結(jié)果:B1scRyT1ealSuvqY5rVeuD3M/77F8+P+ '解密文本,使用加密時(shí)相對(duì)應(yīng)的兩個(gè)密鑰 Dim strResult As String=Crypt.DecryptText(strEncrypt,"key1abcd","key2abcd") Proj.MsgDebug.Add(strResult) '返回結(jié)果:要加密的文本信息 '如果只有Key1的話,解密出來的文本一部分亂碼 strResult=Crypt.DecryptText(strEncrypt,"key1abcd","") Proj.MsgDebug.Add(strResult) '返回結(jié)果:????文本信息 |
C# |
string str = "要加密的文本信息"; // 常規(guī)的用法就兩種 // 加密文本,使用兩個(gè)密鑰。 string strEncrypt = Crypt.EncryptText(str, "key1abcd", "key2abcd"); Proj.MsgDebug.Add(strEncrypt); // 解密文本,使用加密時(shí)相對(duì)應(yīng)的兩個(gè)密鑰 string strResult = Crypt.DecryptText(strEncrypt, "key1abcd", "key2abcd"); Proj.MsgDebug.Add(strResult); // 如果只有Key1的話,解密出來的文本一部分亂碼 strResult = Crypt.DecryptText(strEncrypt, "key1abcd", ""); Proj.MsgDebug.Add(strResult); |
我們其他方法基本靠智能提示中的提示文本就可以知道如何使用了。
我們?cè)傺菔疽幌翿SA加密解密的示例,做個(gè)下面這樣的窗口,然后按鈕的代碼按照下面的代碼寫。
Vb.Net |
Private Sub cmdNewKeys_Click(ByVal sender As Object, ByVal e As C1.Win.C1Command.ClickEventArgs) Dim strPublicKey As String = "" Dim strPrivateKey As String = "" Crypt.GenerateRSAKeyString(strPublicKey, strPrivateKey) txtPublicKey.Value = strPublicKey txtPrivateKey.Value = strPrivateKey End Sub Private Sub cmdDecrypt_Click(ByVal sender As Object, ByVal e As C1.Win.C1Command.ClickEventArgs) If String.IsNullOrEmpty(txtPrivateKey.Text) Then MessageBox.Show("沒有解密用的私鑰,無法進(jìn)行解密!") Return End If If String.IsNullOrEmpty(txtEncryptString.Text) Then MessageBox.Show("沒有可用來解密的文本!") Return End If Try txtDecryptString.Value = Crypt.DecryptTextRSA(txtEncryptString.Text, txtPrivateKey.Text) Catch ex As Exception UnhandledExceptionManager.ShowAndSaveLog(ex) End Try End Sub Private Sub cmdEncrypt_Click(ByVal sender As Object, ByVal e As C1.Win.C1Command.ClickEventArgs) If String.IsNullOrEmpty(txtPublicKey.Text) Then MessageBox.Show("沒有解密用的么鑰,無法進(jìn)行加密!") Return End If If String.IsNullOrEmpty(txtDecryptString.Text) Then MessageBox.Show("沒有可用來加密的文本!") Return End If Try txtEncryptString.Value = Crypt.EncryptTextRSA(txtDecryptString.Text, txtPublicKey.Text) Catch ex As Exception UnhandledExceptionManager.ShowAndSaveLog(ex) End Try End Sub |
C# |
private void cmdNewKeys_Click(object sender, C1.Win.C1Command.ClickEventArgs e) { string strPublicKey=""; string strPrivateKey=""; Crypt.GenerateRSAKeyString(ref strPublicKey, ref strPrivateKey); txtPublicKey.Value = strPublicKey; txtPrivateKey.Value = strPrivateKey; } private void cmdDecrypt_Click(object sender, C1.Win.C1Command.ClickEventArgs e) { if (string.IsNullOrEmpty(txtPrivateKey.Text)) { MessageBox.Show("沒有解密用的私鑰,無法進(jìn)行解密!"); return; } if (string.IsNullOrEmpty(txtEncryptString.Text)) { MessageBox.Show("沒有可用來解密的文本!"); return; } try { txtDecryptString.Value = Crypt.DecryptTextRSA(txtEncryptString.Text, txtPrivateKey.Text); } catch (Exception ex) { UnhandledExceptionManager.ShowAndSaveLog(ex); } } private void cmdEncrypt_Click(object sender, C1.Win.C1Command.ClickEventArgs e) { if (string.IsNullOrEmpty(txtPublicKey.Text)) { MessageBox.Show("沒有解密用的么鑰,無法進(jìn)行加密!"); return; } if (string.IsNullOrEmpty(txtDecryptString.Text)) { MessageBox.Show("沒有可用來加密的文本!"); return; } try { txtEncryptString.Value = Crypt.EncryptTextRSA(txtDecryptString.Text, txtPublicKey.Text); } catch (Exception ex) { UnhandledExceptionManager.ShowAndSaveLog(ex); } } |