using System;
using System.Text;
using System.Windows.Forms;
using System.Security.Cryptography;
using System.IO;
using System.Collections; namespace test
{
public partial class frm_DESC : Form
{
public frm_DESC()
{
InitializeComponent();
} public string EncryptDES(string code)
{
string str;
byte[] bytes = Encoding.UTF8.GetBytes(code);
using (TripleDESCryptoServiceProvider provider = new TripleDESCryptoServiceProvider())
{
provider.Key = Encoding.ASCII.GetBytes("6\x0017^mM*\"p:ed\x001a\acO@jPH9^Px#");
provider.IV = Encoding.ASCII.GetBytes("De 63A&*");
using (MemoryStream stream = new MemoryStream())
{
using (CryptoStream stream2 = new CryptoStream(stream, provider.CreateEncryptor(), CryptoStreamMode.Write))
{
stream2.Write(bytes, , bytes.Length);
stream2.FlushFinalBlock();
}
str = Convert.ToBase64String(stream.ToArray());
}
}
return str;
} public string DecryptDES(string password, string verify)
{
string str;
if (verify != "ZZR")
{
return "";
}
byte[] buffer = Convert.FromBase64String(password);
using (TripleDESCryptoServiceProvider provider = new TripleDESCryptoServiceProvider())
{
provider.Key = Encoding.ASCII.GetBytes("6\x0017^mM*\"p:ed\x001a\acO@jPH9^Px#");
provider.IV = Encoding.ASCII.GetBytes("De 63A&*");
using (MemoryStream stream = new MemoryStream())
{
using (CryptoStream stream2 = new CryptoStream(stream, provider.CreateDecryptor(), CryptoStreamMode.Write))
{
stream2.Write(buffer, , buffer.Length);
stream2.FlushFinalBlock();
stream2.Close();
}
str = Encoding.UTF8.GetString(stream.ToArray());
}
}
return str;
} public static string GetEncryptionPwd(string pwd, string number)
{
int num;
pwd = pwd.ToLower();
string str = "QIAN" + pwd;
for (num = ; num < number.Length; num += )
{
str = str + number.Substring(num, );
}
str = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str + "CHUANG", "MD5"); var list = new ArrayList();
for (num = ; num < str.Length; num++)
{
list.Add(str.Substring(num, ));
}
list.Reverse();
str = "";
for (num = ; num < list.Count; num++)
{
str = str + list[num];
}
return str;
} private void btn_Decrypt_Click(object sender, EventArgs e)
{
string str = txt_Decrypt.Text.Trim();
txt_Enctry.Text = DecryptDES(str, "ZZR");
} private void btn_Encrypt_Click(object sender, EventArgs e)
{
string str = txt_Enctry.Text.Trim();
txt_Decrypt.Text = EncryptDES(str);
} private void btn_MD5_Click(object sender, EventArgs e)
{
string number = txt_Number.Text.Trim();
string pwd = txt_Enctry.Text.Trim();
txt_Decrypt.Text = GetEncryptionPwd(pwd, number);
}
}
}

DESC加密解密算法的更多相关文章

  1. 兼容javascript和C#的RSA加密解密算法,对web提交的数据进行加密传输

    Web应用中往往涉及到敏感的数据,由于HTTP协议以明文的形式与服务器进行交互,因此可以通过截获请求的数据包进行分析来盗取有用的信息.虽然https可以对传输的数据进行加密,但是必须要申请证书(一般都 ...

  2. 一组PHP可逆加密解密算法

    对于大部分密码加密,我们可以采用md5.sha1等方法.可以有效防止数据泄露,但是这些方法仅适用于无需还原的数据加密. 对于需要还原的信息,则需要采用可逆的加密解密算法. 下面一组PHP函数是实现此加 ...

  3. RC4加密解密算法

    RC4相对是速度快.安全性高的加密算法.在实际应用中,我们可以对安全系数要求高的文本进行多重加密,这样破解就有一定困难了.如下测试给出了先用RC4加密,然后再次用BASE64编码,这样双重锁定,保证数 ...

  4. java 实现 DES加密 解密算法

    DES算法的入口参数有三个:Key.Data.Mode.其中Key为8个字节共64位,是DES算法的工作密钥:Data也为8个字节64位,是要被加密或被解密的数据:Mode为DES的工作方式,有两种: ...

  5. 数据的加密传输——单片机上实现TEA加密解密算法

    各位大侠在做数据传输时,有没有考虑过把数据加密起来进行传输,若在串口或者无线中把所要传的数据加密起来,岂不是增加了通信的安全性.常用的加密解密算法比如DES.RSA等,受限于单片机的内存和运算速度,实 ...

  6. md5加密以及可逆的加密解密算法

    md5加密 package gov.mof.fasp2.gcfr.adjustoffset.adjust; import java.security.MessageDigest; public cla ...

  7. N个整数(数的大小为0-255)的序列,把它们加密为K个整数(数的大小为0-255).再将K个整数顺序随机打乱,使得可以从这乱序的K个整数中解码出原序列。设计加密解密算法,且要求K<=15*N.

    N个整数(数的大小为0-255)的序列,把它们加密为K个整数(数的大小为0-255).再将K个整数顺序随机打乱,使得可以从这乱序的K个整数中解码出原序列.设计加密解密算法,且要求K<=15*N. ...

  8. RSA加密解密算法

    /** * RSA加密解密算法 * Class Rsa */ class Rsa { /** * 获取pem格式的公钥 * @param $public_key 公钥文件路径或者字符串 * @retu ...

  9. php与java通用AES加密解密算法

    AES指高级加密标准(Advanced Encryption Standard),是当前最流行的一种密码算法,在web应用开发,特别是对外提供接口时经常会用到,下面是我整理的一套php与java通用的 ...

随机推荐

  1. Java线程池详解及实例

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/aa1215018028/article/ ...

  2. Pandas中DataFrame数据合并、连接(concat、merge、join)之concat

    一.concat:沿着一条轴,将多个对象堆叠到一起 concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False, key ...

  3. HDU 6055 - Regular polygon | 2017 Multi-University Training Contest 2

    /* HDU 6055 - Regular polygon [ 分析,枚举 ] 题意: 给出 x,y 都在 [-100, +100] 范围内的 N 个整点,问组成的正多边形的数目是多少 N <= ...

  4. C# 计算小数

    private void button2_Click(object sender, EventArgs e) { ; List<string> list = new List<str ...

  5. attr(name|properties|key,value|fn)

    attr(name|properties|key,value|fn) 概述 设置或返回被选元素的属性值.大理石平台厂家   参数 nameStringV1.0 属性名称 propertiesMapV1 ...

  6. jquery blur()函数 语法

    jquery blur()函数 语法 作用:当元素失去焦点时发生 blur 事件.blur() 函数触发 blur 事件,或者如果设置了 function 参数,该函数也可规定当发生 blur 事件时 ...

  7. 20190716NOIP模拟赛T1 礼物(概率dp+状压)

    题目描述 夏川的生日就要到了.作为夏川形式上的男朋友,季堂打算给夏川买一些生 日礼物. 商店里一共有种礼物.夏川每得到一种礼物,就会获得相应喜悦值Wi(每种 礼物的喜悦值不能重复获得). 每次,店员会 ...

  8. 【CUDA 基础】3.5 展开循环

    title: [CUDA 基础]3.5 展开循环 categories: - CUDA - Freshman tags: - 展开归约 - 归约 - 模板函数 toc: true date: 2018 ...

  9. 顺序表应用6:有序顺序表查询(SDUT 3330)

    Problem Description 顺序表内按照由小到大的次序存放着n个互不相同的整数,任意输入一个整数,判断该整数在顺序表中是否存在.如果在顺序表中存在该整数,输出其在表中的序号:否则输出&qu ...

  10. Linux Ubuntu 用c++11编译

    加上: -std=c++ 例如: g++ test.