c#

位置:IT落伍者 >> c# >> 浏览文章

C#中DES加密用法的使用方法


发布日期:2018年07月07日
 
C#中DES加密用法的使用方法

在C#中直接引用加密类库比在C中要方便和快速

des_democs代码如下

using System;

using SystemSecurityCryptography;

using SystemIO;

using SystemText;

public class EncryptStringDES {

public static void Main(String[] args) {

if (argsLength < ) {

ConsoleWriteLine(Usage: des_demo <stringtoencrypt> args[]);

return;

}

// 使用UTF函数加密输入参数

UTFEncoding utfEncoding = new UTFEncoding();

byte[] inputByteArray = utfEncodingGetBytes(args[]ToCharArray());

// 方式一调用默认的DES实现方法DES_CSP

DES des = DESCreate();  // 方式二直接使用DES_CSP()实现DES的实体

SymmetricStreamEncryptor sse = desCreateEncryptor();  // 初始化DES加密的密钥和一个随机的比特的初始化向量(IV)

Byte[] key = {x x x x x xab xcd xef};

Byte[] IV = {x x x x x xab xcd xef};

desKey = key;

desIV = IV;

// 建立加密流

SymmetricStreamEncryptor sse = desCreateEncryptor();  // 使用CryptoMemoryStream方法获取加密过程的输出

CryptoMemoryStream cms = new CryptoMemoryStream();  // 将SymmetricStreamEncryptor流中的加密数据输出到CryptoMemoryStream中

sseSetSink(cms);

// 加密完毕将结果输出到控制台

sseWrite(inputByteArray);

sseCloseStream();  // 获取加密数据

byte[] encryptedData = cmsData;  // 输出加密后结果

ConsoleWriteLine(加密结果);

for (int i = ; i < encryptedDataLength; i++) {

ConsoleWrite({:X} encryptedData[i]);

}

ConsoleWriteLine();  //上面演示了如何进行加密下面演示如何进行解密

SymmetricStreamDecryptor ssd = desCreateDecryptor();

cms = new CryptoMemoryStream();

ssdSetSink(cms);

ssdWrite(encryptedData);

ssdCloseStream();

byte[] decryptedData = cmsData;

char[] decryptedCharArray = utfEncodingGetChars(decryptedData);

ConsoleWriteLine(解密后数据);

ConsoleWrite(decryptedCharArray);

ConsoleWriteLine();

}

}  编译

D:\csharp>csc des_democs

Microsoft (R) C# Compiler Version [NGWS runtime ]

Copyright (C) Microsoft Corp All rights reserved  运行实例

D:\csharp>des_demoexe 使用C#编写DES加密程序的framework

加密结果

D C D C C CF CE F D E A D ED A A F E E BA

B D B E F D C D F D B E A

               

上一篇:VS.NET实现渐变色(Gradient)窗体

下一篇:解读C#中的规则表达式