使用对称加密算法的例子

原创 2006年05月26日 13:57:00

using System;
using System.Security.Cryptography;
using System.Text;
using System.IO;

/// <summary>
/// 使用对称加密算法的例子
/// </summary>
class Class2
{

 static void Main(string[] args)
 {
  Class2 c=new Class2();
  c.StartDemo();
 }

 public void StartDemo()
 {
  //establish symmetric algorithm
  SymmetricAlgorithm sa = Rijndael.Create();

  //key and iv
  sa.GenerateKey();    //产生随机的 (32*8) 位的密钥
  //sa.GenerateIV();    //初始向量,在ECB模式里面可以不用IV
  sa.Mode = CipherMode.ECB;  //块处理模式
  sa.Padding = PaddingMode.Zeros; //末尾数据块的填充模式

  
  Console.WriteLine("密钥是:");   ///////////
  for (int i=0; i<sa.Key.Length; i++)  ///////////
  {          ///////////
   Console.Write("{0:X2} ",sa.Key[i]); ///////////
  }          ///////////
  Console.WriteLine("/n");    ///////////


  //establish crypto stream
  MemoryStream ms = new MemoryStream();
  CryptoStream cs = new CryptoStream(ms,sa.CreateEncryptor(),CryptoStreamMode.Write);

  //
  string plaintext; //原始文本
  byte[] cipherbytes; //加密后的数据
  byte[] finalbytes;  //解密后的数据

  plaintext="How are you? 这是一行文字。";
  byte[] plainbytes = Encoding.UTF8.GetBytes(plaintext);


  Console.WriteLine("原始文本是:/n{0}/n",plaintext);
  //display plaint text byte array in hex format
  Console.WriteLine("原始数据是:");   ///////////
  for (int i=0; i<plainbytes.Length; i++)  ///////////
  {           ///////////
   Console.Write("{0:X2} ",plainbytes[i]); ///////////
  }           ///////////
  Console.WriteLine("/n");     ///////////

  //加密过程
  cs.Write(plainbytes, 0, plainbytes.Length);
  cs.Close();
  cipherbytes = ms.ToArray();
  ms.Close();

  //display ciphertext byte array in hex format
  Console.WriteLine("加密后的数据是:");  ///////////
  for (int i=0; i<cipherbytes.Length; i++) ///////////
  {           ///////////
   Console.Write("{0:X2} ",cipherbytes[i]);///////////
  }           ///////////
  Console.WriteLine("/n");     ///////////


  //下面的为加密过程
  ms=new MemoryStream(cipherbytes);
  cs=new CryptoStream(ms,sa.CreateDecryptor(),CryptoStreamMode.Read);
  finalbytes=new byte[plainbytes.Length];
  cs.Read(finalbytes,0,plainbytes.Length);

  Console.WriteLine("解密后的数据是:");  ///////////
  for (int i=0; i<finalbytes.Length; i++)     ///////////
  {           ///////////
   Console.Write("{0:X2} ",finalbytes[i]); ///////////
  }           ///////////
  Console.WriteLine("/n");     ///////////

  string finaltext=Encoding.UTF8.GetString(finalbytes);

  Console.WriteLine("解密后的文本是:/n{0}/n/n",finaltext );
  Console.WriteLine("按任意键继续......");
  Console.ReadLine();


 }
}


AES 对称加密算法 加密\解密实例

package com.soufun.com; import java.io.UnsupportedEncodingException; import java.security.InvalidKey...
  • QH_JAVA
  • QH_JAVA
  • 2015年08月17日 23:49
  • 1744

实际项目中常用的加密算法及使用场景

实际项目中的登陆认证、web api接口调用、支付接口调用等场合经常涉及到:md5、sh、 rsa等算法。各大银行接口中经常使用MD5算法对调用接口参数进行签名防篡改。 1.MD5 (1)...
  • qq_27298687
  • qq_27298687
  • 2017年05月23日 15:31
  • 341

(七)实际项目中常用的加密算法及使用场景

一.支付接口常用加密算法: 例如支付宝接口对接中经常涉及到:md5、 rsa两种算法。各大银行接口中经常使用MD5算法对调用接口参数进行签名防篡改。 1.MD5 (1)MD5定义: MD5即Me...
  • zzw222222
  • zzw222222
  • 2016年10月27日 09:27
  • 3170

对称加密与非对称加密理解和非对称加密的java例子

对称加密与非对称加密理解和非对称加密的java例子 1.对称加密:一般小于256 bit的密钥,密钥越大越安全,但是解密和加密时间越长。加密和解密都是用的相同的密钥,快速简单 2.非对称加密:有公...
  • qq_31968809
  • qq_31968809
  • 2017年03月11日 14:23
  • 542

常见密码算法总结--(1)分组对称密码

目录 (一)分组对称密码 (二)非对称密码 (三)杂凑Hash函数 (一)分组对称密码 DES: 第一个得到广泛应用的密码算法,属于对称,分组密码系列,输入明文64...
  • xinqingwuji
  • xinqingwuji
  • 2016年06月06日 17:07
  • 2768

RSA加密算法实例

  • 2012年05月03日 23:04
  • 149KB
  • 下载

AES 对称加密算法 加密\解密实例

package com.soufun.com; import java.io.UnsupportedEncodingException; import java.security.InvalidKey...
  • QH_JAVA
  • QH_JAVA
  • 2015年08月17日 23:49
  • 1744

Des 对称加密算法 加密\解密实例

Des 加密相关类介绍: SecureRandom  这个类是继承自java.util.Random 这个类 SecureRandom 这个类的构造器有三种,下面例举两种: SecureRandom(...
  • QH_JAVA
  • QH_JAVA
  • 2015年08月17日 23:42
  • 2545

对称加密算法之RC4介绍及OpenSSL中RC4常用函数使用举例

对称加密算法之RC4介绍及OpenSSL中RC4常用函数使用举例!
  • fengbingchun
  • fengbingchun
  • 2015年01月20日 21:30
  • 7481

非对称加密算法之RSA介绍及OpenSSL中RSA常用函数使用举例

非对称加密算法之RSA介绍及OpenSSL中RSA常用函数使用举例!
  • fengbingchun
  • fengbingchun
  • 2015年02月08日 16:10
  • 14712
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用对称加密算法的例子
举报原因:
原因补充:

(最多只允许输入30个字)