MD5加密 和 自定义加密解密
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加密 和 自定义加密解密的更多相关文章
- C#:使用MD5对用户密码加密与解密
C#中常涉及到对用户密码的加密于解密的算法,其中使用MD5加密是最常见的的实现方式.本文总结了通用的算法并结合了自己的一点小经验,分享给大家. 一.使用16位.32位.64位MD5方法对用户名加密 1 ...
- MD5加密,Base64加密/解密,AES加密/解密
1.从github上下载GTMBase64-master和AESCrypt-ObjC-master导入工程,如下图所示. 2.使用前的配置及注意事项: (1) 在build phases中的GTMBa ...
- jdk自带的MD5进行数据的加密与解密
package com.tools.util; import java.io.IOException; import java.io.UnsupportedEncodingException; imp ...
- js的常见的三种密码加密方式-MD5加密、Base64加密和解密和sha1加密详解总结
写前端的时候,很多的时候是避免不了注册这一关的,但是一般的注册是没有任何的难度的,无非就是一些简单的获取用户输入的数据,然后进行简单的校验以后调用接口,将数据发送到后端,完成一个简单的注册的流程,那么 ...
- shiro中自定义realm实现md5散列算法加密的模拟
shiro中自定义realm实现md5散列算法加密的模拟.首先:我这里是做了一下shiro 自定义realm散列模拟,并没有真正链接数据库,因为那样东西就更多了,相信学到shiro的人对连接数据库的一 ...
- 转 C#:使用MD5对用户密码加密与解密
C#中常涉及到对用户密码的加密于解密的算法,其中使用MD5加密是最常见的的实现方式.本文总结了通用的算法并结合了自己的一点小经验,分享给大家. 一.使用16位.32位.64位MD5方法对用户名加密 1 ...
- Delphi RSA加解密【 (RSA公钥加密,私钥解密)、(RSA私钥加密,公钥解密)、MD5加密、SHA加密】
作者QQ:(648437169) 点击下载➨delphi RSA加解密 [Delphi RSA加解密]支持 (RSA公钥加密,私钥解密).(RSA私钥加密,公钥解密).MD5加密.SHA1加密.SHA ...
- 微软企业库5.0 学习之路——第七步、Cryptographer加密模块简单分析、自定义加密接口及使用—下篇
在上一篇文章中, 我介绍了企业库Cryptographer模块的一些重要类,同时介绍了企业库Cryptographer模块为我们提供的扩展接口,今天我就要根据这些 接口来进行扩展开发,实现2个加密解密 ...
- .NET和JAVA同等加密方法,MD5和DES对称加密记录
C#版: using System; using System.Security.Cryptography; using System.Text; namespace ConsoleApplicati ...
随机推荐
- Hadoop之MapReduce 本机windows模式运行
hadoop在windows本机运行 (1)在 windows环境下编译好的hadoop放到没有中文和空格的路径下 (2)编译好的hadoop内的hadoop.all文件要放到windows机器的wi ...
- luogu P3601 签到题
链接P3601 签到题 求\[\sum_{i=l}^{r} i-\phi_i\] \(l,r\leq 10^{12},\ r-l\leq 10^6\) 杜教筛似乎做不了. 然后再看\(l\),\(r\ ...
- Django【第6篇】:Django之ORM单表操作(增删改查)
django之数据库表的单表查询 一.添加表记录 对于单表有两种方式 # 添加数据的两种方式 # 方式一:实例化对象就是一条表记录 Frank_obj = models.Student(name =& ...
- CSS3——制作人物走路的小动画
一个很简单的小动画,但是还挺有意思的,就是找这种图片很麻烦,我这里把我找的一张图片贴上来,这张图片是我在网上找的,又改了背景色和大小. <!DOCTYPE html> <html l ...
- 【leetcode】848. Shifting Letters
题目如下: 解题思路:本题首先要很快速的计算出任意一个字符shift后会变成哪个字符,其实也很简单,让shift = shift % 26,接下来再做计算.第二部是求出每个字符要shift的次数.可以 ...
- springboot自定义错误页
静态错误页放在 动态可以放在freemaker或者thymeleaf 匹配规则: 先找动态页面再找静态页面 先找精确错误页面再找模糊页面 注:精确错误页面=50 ...
- 前端面试题常考&必考之--清除浮动的方法
浮动 问题:子元素设置了float后,脱离父元素,导致父元素无法撑开?(也就是子元素的高度没有过渡到父元素) 例子: 检查元素的效果: (三种)常用的解决办法: 1>额外标签法,添加一个空的di ...
- margin属性以及垂直外边距重叠问题
盒子的margin属性 盒子的外边距margin 指的是当前盒子与其他盒子之间的距离,环绕在盒子周围的空白区域,属于不可见的区域,,不会影响到可见框的大小,而是会影响到盒子的位置 ...
- 15 Spring Boot Shiro 验证码
1. <dependency> <groupId>com.github.axet</groupId> <artifactId>kaptcha</a ...
- 微信小程序自定义底部导航栏组件+跳转
微信小程序本来封装有底部导航栏,但对于想自定义样式和方法的开发者来说,这并不是很好. 参考链接:https://github.com/ljybill/miniprogram-utils/tree/ma ...