public class EncryptString
{
/// <summary>
/// MD5加密
/// </summary>
/// <param name="instr"></param>
/// <returns></returns>
public static string EncryptMD5(string instr)
{
string result;
try
{
byte[] toByte = Encoding.Default.GetBytes(instr);
MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
toByte = md5.ComputeHash(toByte);
result = BitConverter.ToString(toByte).ToLower().Replace("-", "");
}
catch
{
result = "";
}
return result;
} /// <summary>
/// 加密(自定义的字节加密)
/// </summary>
/// <param name="str"></param>
/// <param name="bo">是否加随机数</param>
/// <returns></returns>
public static string MyEncrypt(string str, bool bo)
{
char[] cs = str.ToCharArray();
byte[] by;
string results = "", temp = "";
for (int i = ; i < cs.Length; i++)
{
by = System.Text.Encoding.UTF8.GetBytes(cs[i].ToString());
temp = Convert.ToBase64String(by);//每个字转换为四位
if (bo)
{
temp += Common.GetMes.Random(, ).ToString();//同时加两个随机变量
}
results += temp;//(每个变为6位)全部相加
}
return results;
}
/// <summary>
/// 解密(自定义的字节加密)
/// </summary>
/// <param name="str"></param>
/// <param name="t">要和上面的对应,如果加了随机数则t值应该为6,不加的话是4,否则出错</param>
/// <returns></returns>
public static string DeMyEnncrypt(string str, int t)
{
string result = "", strtemp = "";
try
{
char[] cs = str.ToCharArray();
string[] temp = Common.GetMes.ArrayListstr(str, t);
byte[] by;
for (int i = ; i < temp.Length; i++)
{
strtemp = (temp[i].ToString()).Substring(, );
by = Convert.FromBase64String(strtemp);
result += System.Text.Encoding.UTF8.GetString(by);
}
return result;
}
catch
{
return "";
}
} /// <summary>
/// 把一个字符串按照n位长度分割为数组
/// </summary>
/// <param name="str"></param>
/// <param name="n"></param>
/// <returns></returns>
public static string[] ArrayListstr(string str, int n)
{
string[] result;
try
{
if (n <= )
{
n = str.Length;
}
int arrynum = ;
arrynum = (int)(str.Length / n);
if (arrynum <= )
{
arrynum = ;
}
result = new string[arrynum];
for (int i = ; i < arrynum; i++)
{
result[i] = str.Substring(n * i, n);
}
}
catch
{
result = new string[] { "" };
}
return result;
}
}

MD5加密 和 自定义加密解密的更多相关文章

  1. C#:使用MD5对用户密码加密与解密

    C#中常涉及到对用户密码的加密于解密的算法,其中使用MD5加密是最常见的的实现方式.本文总结了通用的算法并结合了自己的一点小经验,分享给大家. 一.使用16位.32位.64位MD5方法对用户名加密 1 ...

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

    1.从github上下载GTMBase64-master和AESCrypt-ObjC-master导入工程,如下图所示. 2.使用前的配置及注意事项: (1) 在build phases中的GTMBa ...

  3. jdk自带的MD5进行数据的加密与解密

    package com.tools.util; import java.io.IOException; import java.io.UnsupportedEncodingException; imp ...

  4. js的常见的三种密码加密方式-MD5加密、Base64加密和解密和sha1加密详解总结

    写前端的时候,很多的时候是避免不了注册这一关的,但是一般的注册是没有任何的难度的,无非就是一些简单的获取用户输入的数据,然后进行简单的校验以后调用接口,将数据发送到后端,完成一个简单的注册的流程,那么 ...

  5. shiro中自定义realm实现md5散列算法加密的模拟

    shiro中自定义realm实现md5散列算法加密的模拟.首先:我这里是做了一下shiro 自定义realm散列模拟,并没有真正链接数据库,因为那样东西就更多了,相信学到shiro的人对连接数据库的一 ...

  6. 转 C#:使用MD5对用户密码加密与解密

    C#中常涉及到对用户密码的加密于解密的算法,其中使用MD5加密是最常见的的实现方式.本文总结了通用的算法并结合了自己的一点小经验,分享给大家. 一.使用16位.32位.64位MD5方法对用户名加密 1 ...

  7. Delphi RSA加解密【 (RSA公钥加密,私钥解密)、(RSA私钥加密,公钥解密)、MD5加密、SHA加密】

    作者QQ:(648437169) 点击下载➨delphi RSA加解密 [Delphi RSA加解密]支持 (RSA公钥加密,私钥解密).(RSA私钥加密,公钥解密).MD5加密.SHA1加密.SHA ...

  8. 微软企业库5.0 学习之路——第七步、Cryptographer加密模块简单分析、自定义加密接口及使用—下篇

    在上一篇文章中, 我介绍了企业库Cryptographer模块的一些重要类,同时介绍了企业库Cryptographer模块为我们提供的扩展接口,今天我就要根据这些 接口来进行扩展开发,实现2个加密解密 ...

  9. .NET和JAVA同等加密方法,MD5和DES对称加密记录

    C#版: using System; using System.Security.Cryptography; using System.Text; namespace ConsoleApplicati ...

随机推荐

  1. bzoj5020 & loj2289 [THUWC 2017]在美妙的数学王国中畅游 LCT + 泰勒展开

    题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=5020 https://loj.ac/problem/2289 题解 这个 appear 和 d ...

  2. man gzip

    GZIP(1)                                                                GZIP(1) NAME/名称       gzip, g ...

  3. linux运维、架构之路-MHA高可用方案

    一.软件介绍          MHA(master high   availability)目前是MySQL高可用方面是一个相对成熟的解决方案.在切换过程中,mha能做到0-30s内自动完成数据库的 ...

  4. 配置 app.js 文件

    pp.js 中存放全局的 JavaScript 逻辑. 示例: App({ onLaunch: function () { console.log('SWAN launch'); }, onShow: ...

  5. Codeforces Round #351(Div 2)

    熬到半夜打结果前一个小时提交代码的页面根本加载不进去,D题写完还因为小点没判被hack掉了... rating什么的都是身外之物了,于是乎喜闻乐见地又掉回绿名了. A题: *题目描述: Bear看一场 ...

  6. UVALive 6862 Triples (找规律 暴力)

    Triples 题目链接: http://acm.hust.edu.cn/vjudge/contest/130303#problem/H Description http://7xjob4.com1. ...

  7. rman备份/恢复

    全备脚本 cat rman_full.sh #!/bin/bash export ORACLE_BASE=/opt/oracle export ORACLE_HOME=$ORACLE_BASE/pro ...

  8. [洛谷P3940]:分组(贪心+并查集)

    题目传送门 题目描述 小$C$在了解了她所需要的信息之后,让兔子们调整到了恰当的位置.小$C$准备给兔子们分成若干个小组来喂恰当的胡萝卜给兔子们吃.此时,$n$只兔子按一定顺序排成一排,第$i$只兔子 ...

  9. VXcode学习

    1.安装中文包(chinese) 2.打开控制面板ctrl+shift+p

  10. postgresql_action

    SELECT * FROM x123_area a LEFT JOIN x123_user_task_brief utb ON utb.ref_area_code = a.area_code WHER ...