步步为营-33-Md5(32)加密与Base64加密

说明:

1:直接贴码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace MD5_Base64
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }
        //加密MD5
        private void btnMD5_Click(object sender, EventArgs e)
        {
            string str = txtString.Text;
           lblMD5Result.Text = UserMd5(str);
        }

        //加密Base64
        private void btnBase64_Click(object sender, EventArgs e)
        {
            lblBase64Result.Text = Base64(lblMD5Result.Text, true);
        }

        //解密Base64
        private void btnDecrypt_Click(object sender, EventArgs e)
        {
            lblDecryptResult.Text = Base64(txtEncode.Text,false);
        }

        #region 01MD5加密
        public static string UserMd5(string str)
        {
            string cl = str;
            string pwd = "";
            MD5 md5 = MD5.Create();//实例化一个md5对像
            // 加密后是一个字节类型的数组,这里要注意编码UTF8/Unicode等的选择 
            byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(cl));
            // 通过使用循环,将字节类型的数组转换为字符串,此字符串是常规字符格式化所得
            for (int i = 0; i < s.Length; i++)
            {
                // 将得到的字符串使用十六进制类型格式。格式后的字符是小写的字母,如果使用大写(X)则格式后的字符是大写字符
                pwd = pwd + s[i].ToString("x2");

            }
            return pwd;
        }
        #endregion

        #region 02Base64加密
        static public string Base64(string s, bool c)
        {
            if (c)
            {
                //加密
                return System.Convert.ToBase64String(System.Text.Encoding.Default.GetBytes(s));
            }
            else
            {

                try
                {
                    //解密
                    return System.Text.Encoding.Default.GetString(System.Convert.FromBase64String(s));
                }
                catch (Exception exp)
                {
                    return exp.Message;
                }
            }
        }
        #endregion

        #region 03Base64解密
        /// <summary>
        /// Base64解密
        /// </summary>
        /// <param name="codeName">解密采用的编码方式,注意和加密时采用的方式一致</param>
        /// <param name="result">待解密的密文</param>
        /// <returns>解密后的字符串</returns>
        public static string DecodeBase64(Encoding encode, string result)
        {
            string decode = "";
            byte[] bytes = Convert.FromBase64String(result);
            try
            {
                decode = encode.GetString(bytes);
            }
            catch
            {
                decode = result;
            }
            return decode;
        }

        /// <summary>
        /// Base64解密,采用utf8编码方式解密
        /// </summary>
        /// <param name="result">待解密的密文</param>
        /// <returns>解密后的字符串</returns>
        public static string DecodeBase64(string result)
        {
            return DecodeBase64(Encoding.UTF8, result);
        }
        #endregion
    }
}

运行效果:

时间: 2024-11-05 13:30:39

步步为营-33-Md5(32)加密与Base64加密的相关文章

MD5加密,Base64加密/解密,AES加密/解密

1.从github上下载GTMBase64-master和AESCrypt-ObjC-master导入工程,如下图所示. 2.使用前的配置及注意事项: (1) 在build phases中的GTMBase64.m需要设置 -fno-objc-arc (2) 在#import "NSString+Base64.m”文件中导入   #import <Foundation/Foundation.h> (3)在#import "GTMBase64.m”文件中添加         

Java实现MD5(32/16位)大小写加密

MD5简单介绍 大家都知道,地球上任何人都有自己独一无二的指纹,这常常成为公安机关鉴别罪犯身份最值得信赖的方法:与之类似,MD5就可以为任何文件(不管其大小.格式.数量)产生一个同样独一无二的"数字指纹",如果任何人对文件名做了任何改动,其MD5值也就是对应的"数字指纹"都会发生变化.MD5还广泛用于操作系统的登陆认证上,如Unix.各类BSD系统登录密码.数字签名等诸多方.如在UNIX系统中用户的密码是以MD5(或其它类似的算法)经Hash运算后存储在文件系统中.

Java实现 Base64、MD5、MAC、HMAC加密(转)

开始对那些基本的加密还不怎么熟练,然后总结了些,写了一个测试:支持 Base64.MD5.MAC.HMAC加密,长话短说,我们都比较喜欢自己理解,看代码吧! 采用的输UTF-8的格式... package codec; import java.security.MessageDigest; import javax.crypto.KeyGenerator; import javax.crypto.Mac; import javax.crypto.SecretKey; import javax.c

原创:MD5 32位加密软件

网站后台数据库切勿使用明文保存密码,否则一旦黑客拿下你的Webshell,后果不堪设想. 网站后台密码加密大多数采用的就是MD5算法加密.今天给大家送一个本人用c#简单编写的MD5 32位加密程序,虽然没有什么技术含量,但保证没有后门. 程序截图: 开放源码如下: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing;

iOS HmacSHA1加密 和 MD5 Base64加密 --iOS开发系列---项目中成长的知识五

项目中开发中需要对一些数据进行加密后和服务器验证是否是我们客户端发出的请求! 方案是服务器定的,使用HmacSHA1加密和MD5 Base64加密 加密过程比较复杂 1.获取格林威治时间 2.用base64编码对请求数据内容进行MD5值计算 3.设置请求格式 4.设置鉴权信息,需要对上面的3个内容以及请求的链接 进行HMacSHA1再次进行加密 加密过后把上面4步获得的值加入到http的请求头中,一并发送给服务器,服务器经过验证后,才返回给我们我们想要的信息 下面贴代码说明我们使用的两个加密 首

DES对称加解密、AES RijndaelManaged加解密、Base64加密解密、MD5加密等操作辅助类 EncodeHelper

/// <summary> /// 使用默认加密 /// </summary> /// <param name="strText"></param> /// <returns></returns> public static string DesEncrypt(string strText) /// <summary> /// 使用默认解密 /// </summary> /// <pa

iOS关于md5 32位加密

导入头文件: #import <CommonCrypto/CommonDigest.h> //32位MD5加密方式 //md5 32位 加密 (小写)- (NSString *)md5:(NSString *)str {                const char *cStr = [str UTF8String];                unsigned char result[32];                CC_MD5( cStr, strlen(cStr), re

md5 32位 加密原理 Java实现md5加密

md5 32位 加密原理 简单概括起来,MD5 算法的过程分为四步:处理原文,设置初始值,循环加工,拼接结果. 第一步:处理原文 首先,我们计算出原文长度(bit)对 512 求余的结果,如果不等于 448,就需要填充原文使得原文对 512 求余的结果等于 448.填充的方法是第一位填充 1,其余位填充 0.填充完后,信息的长度就是 512*N+448. 之后,用剩余的位置(512-448=64 位)记录原文的真正长度,把长度的二进制值补在最后.这样处理后的信息长度就是 512*(N+1). 第

IOS下Base64加密

Base64加密是常用的加密算法,在IOS的Des加密算法中已经使用到了Base64算法,还是单独整理出来吧. Base64.h文件 // // Base64.h // Copyright (c) 2014年 grant. All rights reserved. // #import <Foundation/Foundation.h> @interface Based64 : NSObject //Base64加密 + (NSString *) encodeBase64WithString: