/// <summary> 
/// EncryptHelper 来自 www.Admin10000.com 
/// </summary> 
public class EncryptHelper
{
        // 提供8个字符作为DES密钥(程序自动截取前8个字符) 
        private static string key = "admin10000.com";

/// <summary>
        /// DES对称加密解密的密钥
        /// </summary> 
        public static string Key
        {
                get
                {
                        return key;
                }
                set
                {
                        key = value;
                }
        }

/// <summary>
        /// MD5 加密(不可逆加密)
        /// </summary>
        /// <param name="pass">要加密的原始字串</param>
        /// <returns></returns> 
        public static string MD5Encrypt(string pass)
        {    
                System.Security.Cryptography.MD5 md5 = newSystem.Security.Cryptography.MD5CryptoServiceProvider();
                byte[] bytResult =md5.ComputeHash(System.Text.Encoding.UTF8.GetBytes(pass));
                md5.Clear();
                string strResult = BitConverter.ToString(bytResult);
                strResult = strResult.Replace("-", "");
                return strResult;        
                /* 另一种方法
                pass = FormsAuthentication.HashPasswordForStoringInConfigFile(pass, "MD5");
                return pass;
                */    
        }

/// <summary>
        /// SHA1 加密(不可逆加密)
        /// </summary>
        /// <param name="pass">要加密的原始字串</param>
        /// <returns></returns> 
        public static string SHA1Encrypt(string pass)
        {
                System.Security.Cryptography.SHA1 sha1 = newSystem.Security.Cryptography.SHA1CryptoServiceProvider();
                byte[] bytResult =sha1.ComputeHash(System.Text.Encoding.UTF8.GetBytes(pass));
                sha1.Clear();
                string strResult = BitConverter.ToString(bytResult);
                strResult = strResult.Replace("-", "");
                return strResult;
                /* 另一种方法
                pass = FormsAuthentication.HashPasswordForStoringInConfigFile(pass, "SHA1");
                return pass;
                */
        }

/// <summary>
        /// DES加密字符串
        /// </summary>
        /// <param name="encryptString">待加密的字符串</param>
        /// <returns>加密成功返回加密后的字符串,失败返回源串</returns> 
        public static string DESEncrypt(string encryptString)
        {
                try
                {
                        byte[] rgbKey = Encoding.UTF8.GetBytes(key.Substring(0, 8));
                        byte[] rgbIV = rgbKey;
                        byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString);
                        DESCryptoServiceProvider dCSP = new DESCryptoServiceProvider();
                        MemoryStream mStream = new MemoryStream();
                        CryptoStream cStream = new CryptoStream(mStream, dCSP.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
                        cStream.Write(inputByteArray, 0, inputByteArray.Length);
                        cStream.FlushFinalBlock();
                        cStream.Close();
                        return Convert.ToBase64String(mStream.ToArray());
                }
                catch
                {
                        return encryptString;
                }
        }

/// <summary>
        /// DES解密字符串
        /// </summary>
        /// <param name="decryptString">待解密的字符串</param>
        /// <returns>解密成功返回解密后的字符串,失败返源串</returns> 
        public static string DESDecrypt(string decryptString)
        {
                try
                {
                        byte[] rgbKey = Encoding.UTF8.GetBytes(key.Substring(0, 8));
                        byte[] rgbIV = rgbKey;
                        byte[] inputByteArray = Convert.FromBase64String(decryptString);
                        DESCryptoServiceProvider DCSP = new DESCryptoServiceProvider();
                        MemoryStream mStream = new MemoryStream();
                        CryptoStream cStream = new CryptoStream(mStream, DCSP.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
                        cStream.Write(inputByteArray, 0, inputByteArray.Length);
                        cStream.FlushFinalBlock();
                        cStream.Close();
                        return Encoding.UTF8.GetString(mStream.ToArray());
                }
                catch
                {
                        return decryptString;
                }
        }

/// <summary>
        /// 将普通字符串编码为BASE64字串
        /// </summary>
        /// <param name="str">源字符串</param>
        /// <returns></returns> 
        public static string Base64Encode(string str)
        {
                return Convert.ToBase64String(Encoding.UTF8.GetBytes(str));
        }

/// <summary>
        /// 解码BASE64字串
        /// </summary>
        /// <param name="str">Base64字串</param>
        /// <returns></returns> 
        public static string Base64Decode(string base64Str)
        {
                return Encoding.UTF8.GetString(Convert.FromBase64String(base64Str));
        }
}

MD5、SHA1、DES加密和解密,Base64编码解码的更多相关文章

  1. qt md5加密,base64编码解码

    qt md5加密,base64编码解码 md5加密 QByteArray data = "12121221"; data += "asdfas"; QByteA ...

  2. 利用openssl进行BASE64编码解码、md5/sha1摘要、AES/DES3加密解密

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  3. DES加密和解密PHP,Java,ObjectC统一的方法

    原文:DES加密和解密PHP,Java,ObjectC统一的方法 PHP的加解密函数 <?php class DesComponent { var $key = '12345678'; func ...

  4. 一、DES加密和解密

    一.DES加密和解密 原文:http://www.jb51.net/article/51879.htm  还有其他文章 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 ...

  5. DES加密与解密在GET请求时解密失败的问题

    DES加密与解密在GET请求时解密失败的问题 在数据进行加密后传递会更安全,但可能有个问题:就是Url编码问题,如果不对Url进行编码直接加密,那么在解密时,如果字符串存在 “+”,这种特殊符号,在解 ...

  6. 【Java】通过DES加密和解密工具,对字符串进行加密和解密操作

    分享一个非常不错的字符串加密和解密的程序. 可以指定不同的密钥对同一字符串进行不同的加密操作,增强加密性能. Java代码如下: package com.app; import java.securi ...

  7. md5加密,md5加盐加密和解密

    package com.java.test; import java.security.MessageDigest; import java.security.SecureRandom; import ...

  8. 《PHP 实现 Base64 编码/解码》笔记

    前言 早在去年 11 月底就已经看过<PHP 实现 Base64 编码/解码>这篇文章了,由于当时所掌握的位运算知识过于薄弱,所以就算是看过几遍也是囫囵吞枣一般,不出几日便忘记了其滋味. ...

  9. OpenSSL 使用 base64 编码/解码

    简述 关于 OpenSSL 的介绍及安装请参见:Windows下编译OpenSSL 下面主要介绍有关 OpenSSL 使用 base64 编码/解码. 简述 编码解码 更多参考 编码/解码 #incl ...

  10. Javascript中Base64编码解码的使用实例

    Javascript为我们提供了一个简单的方法来实现字符串的Base64编码和解码,分别是window.btoa()函数和window.atob()函数. 1 var encodedStr = win ...

随机推荐

  1. Thinkphp5 使用爬虫框架 QueryList3 的非composer方法教程

    首先,我要吐槽一下.我查了很多博客用tp框架使用composer方法结合 QueryList的教程.就是没有找到非composer的方法.于是摸索总结成功的经验: 工具:phpQuery.php 和 ...

  2. vue项目git

    https://github.com/renrenio/renren-fast-vue https://github.com/hzlshen/vue-project

  3. 创建Spring Boot 工程

    先在eclipse中安装spring -tool -suite插件,然后根据以下步骤可以创建   1.新建Spring Starter Project 2.Packaging 选择 jar 3.勾选W ...

  4. 4 November in ss

    Contest A. 输油管道问题 某石油公司计划建造一条由东向西的主输油管道.该管道要穿过一个有 \(n\) 口油井的油田.从每口油井都要有一条输油管道沿最短路经 (或南或北) 与主管道相连.如果给 ...

  5. ruby+selenium-webdriver一步一步完成自动化测试-----准备篇

    这一系列文章目的不是讲ruby,也不是讲selenium-webdriver,而是通过一个登录soso首页的小例子讲怎样一步一步写好自动化测试.目标是:面向对象编程,实现逻辑与数据分离. 如果你觉得已 ...

  6. 【转】如何成功安装旧版本火狐,成功安装firebug和firepath插件

    原文地址:https://www.cnblogs.com/meimei00/p/10566793.html

  7. 阿里云二级域名解析指向服务器另一台主机— —Nginx

    这是在一台阿里云服务器没有任何域名,但是配置高,因此想借用另一台阿里云服务器(配置较低)已备案的域名 跳转到这台配置高的服务器,那么使用nginx反向代理 server { listen 80; se ...

  8. 抓包工具fiddler下载配置(三):手机设置代理

      前言 本篇仅讲解了手机端如何设置代理,是[抓包工具fiddler下载配置(一):下载/安装&信任证书]的后续文章,未下载安装抓包工具的需先参考文章[抓包工具fiddler下载配置(一):下 ...

  9. Mr. Panda and Crystal(最短路+完全背包)

    http://codeforces.com/gym/101206/attachments 题意: T组输入,每组给出m,n,k,m为能量总数,n为水晶种类数,k为合成方案数.有的水晶可以用能量制造,有 ...

  10. equals方法重写

    在java中常见的equals方法的重写: 举例:一个自定义类ball如下 public class Ball { private String name; private int weight; p ...