02-26 ASP.NET加密解密的方法

MD5加密、解密的方法。

  使用时的代码备忘:Response.Write(FormsAuthentication.HashPasswordForStoringInConfigFile("要加密的字符串", "MD5"));

以下是加密、解密的代码部分:

/*用法
 protected void Page_Load(object sender, EventArgs e)
    {
        //加密
        this.Title = CEncrypt.DesEncrypt("pwd", CEncrypt.Key);
        this.Title += CEncrypt.DesDecrypt(this.Title, CEncrypt.Key);
        Response.Write(CEncrypt.DesDecrypt("gAYyhdLQunc=", CEncrypt.Key));
    }
 */
using System;
using System.IO;
using System.Text;
using System.Security.Cryptography;
using System.Web;

namespace YD.Common
{
    /// <summary>
    /// 加密码类
    /// </summary>
    public class CEncrypt
    {
        /// <summary>
        /// 加密
        /// </summary>
        /// <param name="inputString"></param>
        /// <returns></returns>
        public static string DesEncrypt(string inputString)
        {
            return DesEncrypt(inputString, Key);
        }
        /// <summary>
        /// 解密
        /// </summary>
        /// <param name="inputString"></param>
        /// <returns></returns>
        public static string DesDecrypt(string inputString)
        {
            return DesDecrypt(inputString, Key);
        }
        /// <summary>
        /// 密匙
        /// </summary>
        private static string Key
        {
            get
            {
                return "hongye10";
            }
        }
        /// <summary>
        /// 加密字符串
        /// 注意:密钥必须为8位
        /// </summary>
        /// <param name="strText">字符串</param>
        /// <param name="encryptKey">密钥</param>
        /// <param name="encryptKey">返回加密后的字符串</param>
        public static string DesEncrypt(string inputString, string encryptKey)
        {
            byte[] byKey = null;
            byte[] IV = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };
            try
            {
                byKey = System.Text.Encoding.UTF8.GetBytes(encryptKey.Substring(0, 8));
                DESCryptoServiceProvider des = new DESCryptoServiceProvider();
                byte[] inputByteArray = Encoding.UTF8.GetBytes(inputString);
                MemoryStream ms = new MemoryStream();
                CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(byKey, IV), CryptoStreamMode.Write);
                cs.Write(inputByteArray, 0, inputByteArray.Length);
                cs.FlushFinalBlock();
                return Convert.ToBase64String(ms.ToArray());
            }
            catch (System.Exception error)
            {
                //return error.Message;
                return null;
            }
        }
        /// <summary>
        /// 解密字符串
        /// </summary>
        /// <param name="this.inputString">加了密的字符串</param>
        /// <param name="decryptKey">密钥</param>
        /// <param name="decryptKey">返回解密后的字符串</param>
        public static string DesDecrypt(string inputString, string decryptKey)
        {
            byte[] byKey = null;
            byte[] IV = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };
            byte[] inputByteArray = new Byte[inputString.Length];
            try
            {
                byKey = System.Text.Encoding.UTF8.GetBytes(decryptKey.Substring(0, 8));
                DESCryptoServiceProvider des = new DESCryptoServiceProvider();
                inputByteArray = Convert.FromBase64String(inputString);
                MemoryStream ms = new MemoryStream();
                CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(byKey, IV), CryptoStreamMode.Write);
                cs.Write(inputByteArray, 0, inputByteArray.Length);
                cs.FlushFinalBlock();
                System.Text.Encoding encoding = new System.Text.UTF8Encoding();
                return encoding.GetString(ms.ToArray());
            }
            catch (System.Exception error)
            {
                //return error.Message;
                return null;
            }
        }
    }
}

时间: 2024-11-08 19:19:14

02-26 ASP.NET加密解密的方法的相关文章

神级程序员带来:用python有证书的加密解密实现方法!

本文实例讲述了python有证书的加密解密实现方法.分享给大家供大家参考.具体实现方法如下: 最近在做python的加解密工作,同时加完密的串能在php上能解出来,网上也找了一些靠谱的资料,刚好也有时间我就总结了一下python在加密与解密这块的代码,今后可能还能用的上.相对于php而言python这块加解密组件较多的,分别是: 一. RSA标准方式生成的证书 1.加密解密.加密签名.验证加密签名 代码如下: #encoding: utf8 import os import M2Crypto #

PHP rsa加密解密使用方法

php服务端与客户端交互.提供开放api时,通常需要对敏感的部分api数据传输进行数据加密,这时候rsa非对称加密就能派上用处了,下面通过一个例子来说明如何用php来实现数据的加密解密 1.加密解密的第一步是生成公钥.私钥对,私钥加密的内容能通过公钥解密(反过来亦可以) 下载开源RSA密钥生成工具openssl(通常Linux系统都自带该程序),解压缩至独立的文件夹,进入其中的bin目录,执行以下命令: openssl genrsa -out rsa_private_key.pem 1024 o

AES简单加密解密的方法实现

package com.mstf.aes; import java.io.UnsupportedEncodingException; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; import javax.crypto.BadPaddingException; import javax.crypt

iOS AES加密解密实现方法

使用方法 先导入头文件 #import "NSData+AES.h" //AES测试 //用来密钥 NSString *key = @"123456"; //用来发送的原始数据 NSString *secret = @"I Love You"; //数据转码 NSData *plain = [secret dataUsingEncoding:NSUTF8StringEncoding]; //用密钥加密 NSData *cipher = [plai

C#常用的加密解密方法

开篇 C#内置很多加密解密的方法,有MD5,SHA1,base64等.这里会简单介绍下这几个方法以及用法,不过不会深入研究每种加密方法的原理,高手请绕行. 这几个加密解密会分为两类说,一类是只有加密,没有解密类型的MD5,SHA1.此类加密常用在数据校验.一类是有加密,有解密类型的base64,DES,RSA.此类加密常用在数据传输. 数据校验型 MD5 Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完

C#/IOS/Android通用加密解密方法

原文:C#/IOS/Android通用加密解密方法 公司在做移动端ios/android,服务器提供接口使用的.net,用到加密解密这一块,也在网上找了一些方法,有些是.net加密了android解密不了,或者反之.下面的是三个平台都可以加密解密的方法.加密解密中用到的key="1234578";在调取方法时传值即可. C#代码 #region 跨平台加解密(c#) /// <summary> /// 对字符串进行DES加密 /// </summary> ///

PHP带参数可逆的加密解密函数,可用于cookie的加密解密

在开发应用过程中我们经常会涉及一些链接或参数或cookie的加密解密,由于php自身提供的md5函数不可逆,因此md5只适用于类似密码加密的地方,而cookie加密则有局限性,下面为大家提供一种加密解密函数方法,供大家参考: <?php //加密函数 function passport_encrypt($txt, $key) { srand((double)microtime() * 1000000); $encrypt_key = md5(rand(0, 32000)); $ctr = 0;

对配置文件内的固定内容加密解密

接到一个需求,背景是对公司的各个服务器环境下的配置文件内存有数据库用户名,数据库密码,因为在配置文件中,许多shell脚本都需要调用配置文件中的数据库用户名,密码,所以一直以明文保存,需求内容就是实现对配置文件内的用户名,密码加密,同时加密后要解决shell脚本文件还可以调用到正确的用户名密码,因此还需要解密. 因为是在服务器环境下,所以可以编写java程序,然后将程序打成jar包,通过shell指令调用jar包实现加密与解密. 因为要实现逆向解密,所以没有采用MD5,只能用比较老的DES或者A

基于正则的INI读写工具类,支持加密解密

看到这个标题,有人会问,现在都用xml做配置文件了,谁还用INI文件啊!下面来简单对比一下xml和ini: 1.XML功能强大表达能力强,同时扩展性好. 2.它的主要优势是异构平台的整合.通讯. 3.缺点主要是使用复杂,运行库占用的资源较多. 4.如果多个程序进行数据交换或是跨平台通讯则使用功能强大的XML: 5.INI虽表达能力不强,但是简单实用,接口方便.如果是用于应用程序的配置INI文件就够了. 至于哪个更好,应该用哪个,可以根据自己爱好和需求.个人感觉INI文件操作简单,就是读取文件,处