以下所有的加密解密都是放在Crypt这个静态类下面的静态方法。我们想用的话就直接使用即可。
Name | Description |
Base64StringToBytes | 根据Base64字符串返回一个Byte数组。 |
BytesToBase64String | 根据一个Byte数组返回一个Base64字符串。 |
BytesToFile | Byte数组转换成文件。 |
BytesToHexString | Byte数组转十六进制字符。 |
CRC16 | 返回字符串的CRC16验证码。 |
DateToJavaScriptDateTime | .Net日期转换成JavaScript日期。 |
DecryptDataAES | |
DecryptFileDES | DES解密文件。 |
DecryptText | DES解密文本 |
DecryptTextAES | AES解密文本。 |
DecryptTextDES(String, String) | DES解密文本。 |
DecryptTextDES(String, String, String) | DES解密文本。 |
DecryptTextRSA | 用私钥解密文本。 |
EncryptDataAES | |
EncryptFileDES | DES加密文件。 |
EncryptText | DES加密文本.两个密钥,返回的文本转Base64字符串。 |
EncryptTextAES | AES加密文本。 |
EncryptTextDES(String, String) | DES加密文本。返回的文本转Base64字符串。 |
EncryptTextDES(String, String, String) | DES加密文本。返回的文本没有转Base64字符串。 |
EncryptTextRSA | 用公钥加密文本。 |
FileToBytes | 将文件转换成Byte数组。 |
GenerateRSAKeyString | 生成RSA的一对密钥。 |
GetFileFromBase64String | 从Base64字符串获得一个文件。 |
GetFileFromHexString | 从十六进制字符串获得一个文件。 |
GetFileToBase64String | 返回文件的Base64字符串。 |
GetFileToHexString | 返回文件的十六进制字符串。 |
GetTextFromBase64String | 从Base64字符串获得一个文本。 |
GetTextFromHexString | 从十六进制字符串获得一个文本。 |
GetTextToBase64String | 返回文本的Base64字符串。 |
GetTextToHexString | 返回文本的十六进制字符串。 |
HexStringToBytes | 将十六进制字符转化成字节数组。 |
JavaScriptDateTimeToDate | JavaScript日期转换成.Net日期。 |
MD5ForFile | 返回文件的MD5值。 |
MD5ForString | 返回指定文本的MD5字符串。 |
ToHMACSHA1 | 将字符串转换成HMACSHA1 |
Vb.Net |
Dim str As String="要加密的文本信息" '常规的用法就两种 '加密文本,使用两个密钥。 Dim strEncrypt As String=Crypt.EncryptText(str,"key1abcd","key2abcd") Proj.MsgDebug.Add(strEncrypt) '返回结果:B1scRyT1ealSuvqY5rVeuD3M/77F8+P+ '解密文本,使用加密时相对应的两个密钥 Dim strResult As String=Crypt.DecryptText(strEncrypt,"key1abcd","key2abcd") Proj.MsgDebug.Add(strResult) '返回结果:要加密的文本信息 '如果只有Key1的话,解密出来的文本一部分乱码 strResult=Crypt.DecryptText(strEncrypt,"key1abcd","") Proj.MsgDebug.Add(strResult) '返回结果:⼿귚שׂ䣡文本信息 |
C# |
string str = "要加密的文本信息"; // 常规的用法就两种 // 加密文本,使用两个密钥。 string strEncrypt = Crypt.EncryptText(str, "key1abcd", "key2abcd"); Proj.MsgDebug.Add(strEncrypt); // 解密文本,使用加密时相对应的两个密钥 string strResult = Crypt.DecryptText(strEncrypt, "key1abcd", "key2abcd"); Proj.MsgDebug.Add(strResult); // 如果只有Key1的话,解密出来的文本一部分乱码 strResult = Crypt.DecryptText(strEncrypt, "key1abcd", ""); Proj.MsgDebug.Add(strResult); |
我们其他方法基本靠智能提示中的提示文本就可以知道如何使用了。
我们再演示一下RSA加密解密的示例,做个下面这样的窗口,然后按钮的代码按照下面的代码写。
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("没有解密用的私钥,无法进行解密!") 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("没有解密用的么钥,无法进行加密!") 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("没有解密用的私钥,无法进行解密!"); 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("没有解密用的么钥,无法进行加密!"); return; } if (string.IsNullOrEmpty(txtDecryptString.Text)) { MessageBox.Show("没有可用来加密的文本!"); return; } try { txtEncryptString.Value = Crypt.EncryptTextRSA(txtDecryptString.Text, txtPublicKey.Text); } catch (Exception ex) { UnhandledExceptionManager.ShowAndSaveLog(ex); } } |