zoukankan      html  css  js  c++  java
  • C# DES加密与解密算法实例

    引入System.Web.dll,用System.Web命名空间的
    pass = FormsAuthentication.HashPasswordForStoringInConfigFile(pass, "MD5");

    Code

    先看下效果

    点加密
    加密出来了~
    然后点解密
    解密成功~就算你再次启动程序~也是一样可以的情况~
    代码如下~仔细看哦 ~~我不多说明了~
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    //添加
    using System.Globalization;
    using System.Security.Cryptography;

    namespace WindowsApplication1
    {
          public partial class Form1 : Form
          {
              public Form1()
              {
                  InitializeComponent();
              }
              public string key="??^&$%^&";//随便写~
              public string s2;
              //// 创建Key
              //public string GenerateKey()
              //{
              //      DESCryptoServiceProvider desCrypto = (DESCryptoServiceProvider)DESCryptoServiceProvider.Create();
              //      return ASCIIEncoding.ASCII.GetString(desCrypto.Key);
              //}
              // 加密字符串
              public string EncryptString(string sInputString, string sKey)
              {
                  byte[] data = Encoding.UTF8.GetBytes(sInputString);
                  DESCryptoServiceProvider DES = new DESCryptoServiceProvider();
                  DES.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
                  DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
                  ICryptoTransform desencrypt = DES.CreateEncryptor();
                  byte[] result = desencrypt.TransformFinalBlock(data, 0, data.Length);
                  return BitConverter.ToString(result);
              }
              // 解密字符串
              public string DecryptString(string sInputString, string sKey)
              {
                  string[] sInput = sInputString.Split("-".ToCharArray());
                  byte[] data = new byte[sInput.Length];
                  for (int i = 0; i < sInput.Length; i++)
                  {
                      data[i] = byte.Parse(sInput[i], NumberStyles.HexNumber);
                  }
                  DESCryptoServiceProvider DES = new DESCryptoServiceProvider();
                  DES.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
                  DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
                  ICryptoTransform desencrypt = DES.CreateDecryptor();
                  byte[] result = desencrypt.TransformFinalBlock(data, 0, data.Length);
                  return Encoding.UTF8.GetString(result);
              }
            
              private void Form1_Load(object sender, EventArgs e)
              {
              }
              private void button1_Click(object sender, EventArgs e)
              {//加密
                  textBox2.Text = EncryptString(textBox1.Text, key);
              }
              private void button2_Click(object sender, EventArgs e)
              {//解密
                  textBox2.Text = DecryptString(textBox1.Text, key);
              }
          }
    }
    以上在VS2005中运行成功~^_^~~
    Code
  • 相关阅读:
    套接字中的setsockopt接口功能
    memmove()函数介绍
    static 关键字和类的加载顺序
    Navicat 链接mysql 显示 Clinet dose not support authentication protocol request by server ;consider upgrading MySQL client
    maven项目引入依赖之后,jar包没有自动导入报错
    @RequestParam 和@RequestBody 的区别?
    java中 & ^ ~ 的运算
    form表单post请求乱码问题
    struts2+hibernate3.2分页
    AJAX建立和服务器连接,接收服务器技术处理服务器返回的数据
  • 原文地址:https://www.cnblogs.com/CCJVL/p/1367943.html
Copyright © 2011-2022 走看看