/// <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. [CSP-S模拟测试]:Endless Fantasy(DFS)

    题目描述 中二少年$cenbo$幻想自己统治着$Euphoric\ Field$.由此他开始了$Endless\ Fantasy$.$Euphoric\ Field$有$n$座城市,$m$个民族.这些 ...

  3. (转)阿里官方提供的dubbo-spring-boot-starter 1.0.1 整合的dubbo 2.6.0和spring boot 1.5.9 案例

    作者:许浩_5e9f链接:https://www.jianshu.com/p/5381cc8876e3來源:简书著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. springboo ...

  4. poj-1021--2D-Nim--点阵图同构

    2D-Nim Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 4136   Accepted: 1882 Descriptio ...

  5. linux下载文件到本地命令

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

  6. github 上的PHP资源大全

    依赖管理 ——用于依赖管理的包和框架Composer/Packagist : 一个包和依赖管理器Composer Installers:  一个多框架Composer库安装器Pickle: 可以在任意 ...

  7. [360前端星计划]BlackJack(21点)(纯JS,附总部学习笔记)

    [360前端星计划]总部学习笔记(6/6) [360前端星计划]详情跳转 游戏界面预览 目录 一.游戏介绍 1.起源 2.规则 3.技巧 二.游戏设计 1.整体UI构思 2.素材采集 3.游戏总规划 ...

  8. 实验报告(六)&第八周学习总结

    班级 计科二班 学号 20188425 姓名 IM 完成时间2019/10/18 评分等级 实验六 Java异常 实验目的 理解异常的基本概念: 掌握异常处理方法及熟悉常见异常的捕获方法. 实验要求 ...

  9. 浅析java设计模式(一)----异构容器,可以存储任何对象类型为其他类提供该对象

    最近在着手重构一个java UI桌面项目,发现这个项目在一开始的时候由于需求不明确,以及开发人员对swing框架不熟悉等问题造成了页面代码混乱的情况:为了能够在各个类里都可以拿到其他类的引用去进行相应 ...

  10. python基础--选择排序

    1.首先用一张图来描述选择排序的具体过程 2.废话不多说,上代码 # 1.定义函数:选择排序 def choose_sort(list): list_len = len(list) for i in ...