发一个加密的方法

加密

//声明加密字符生成的随机数的位数
public const int LENGTH = 32;
//声明加密字符前后的分隔长度
public const int LEN = 4;

///方法作用:根据参数对其加密
///参数:
/// string strEncrypt;欲加密的字符
///返回结果:加密后的字符
public static byte[] SourceEncrypt(string strEncrypt)
{
string source = Encrypt(strEncrypt);
//first
string first = Encrypt(source.Substring(0,LEN));
//second
string second = Encrypt(source.Substring(LEN-1,source.Length-LEN));
//third
string third = Encrypt(source.Substring(source.Length-LEN,LEN));
//four
byte[] Random = new byte[LENGTH];
RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
rng.GetNonZeroBytes(Random);
string four = Encrypt(System.Text.Encoding.ASCII.GetString(Random));
string all = first+second+third+four;
return System.Text.Encoding.ASCII.GetBytes(all);
} // end SourceEncrypt

///方法作用:对参数进行加密
///参数:
/// string strEncrypt:欲加密的字符
/// 返回结果:加密后的字符
public static string Encrypt(string strEncrypt)
{
SHA256Managed sha = new SHA256Managed();
byte[] VALUE = sha.ComputeHash(System.Text.Encoding.ASCII.GetBytes(strEncrypt));
return System.Text.Encoding.ASCII.GetString(VALUE);
} // end Encrypt

///方法作用:对参数进行比较
///参数:
/// string strSource:原字符
/// string strObject:目标字符
/// 返回结果:bool是否相等
public static bool CompareEncrypt(byte[] strSource,string strobject)
{
bool result = true;
byte[] strObject = SourceEncrypt(strobject);
//strObject = SourceEncrypt(strObject);
if((strSource==null) || (strObject==null) || (strSource.Length != strObject.Length))
result = false;
else
{
//strSource = strSource.Substring(0,strSource.Length-LENGTH);
//strObject = strObject.Substring(0,strObject.Length-LENGTH);
//byte[] Source = System.Text.Encoding.ASCII.GetBytes(strSource);
//byte[] Obj = System.Text.Encoding.ASCII.GetBytes(strObject);
byte[] Source = strSource;
byte[] Obj = strObject;
if(Source.Length != Obj.Length)
result = false;
else
{
for(int i = 0; i < Source.Length-LENGTH; i++)
{
if(Source[i] != Obj[i])
{
result = false;
break;
}
}
}
}

return result;
} //end CompareyEncrypt

时间: 2024-12-17 23:26:34

发一个加密的方法的相关文章

小白用php仿照js写的一个加密方法 就是有问题 求解答

问题描述 小白用php仿照js写的一个加密方法 就是有问题 求解答 原本的js是一段加密的方法 function checkform() { var dcode; var dcode1; var dcode2; dcode=document.form1.pwd.value; dcode1=""; dcode2=1275903582 dcode2=""+dcode2*137; var tmpstr; var dcodelen; dcodelen=dcode.lengt

网站安全之ASP程序加密/解密方法大揭密

安全|程序|加密|解密 如今,用ASP技术构建的网站随处可见.由于ASP脚本是在服务器上解释执行的(无法编译),因此你辛苦开发出来的ASP代码,很容易被人拷去任意修改,如何保护ASP源代码呢?这是每个ASP站长都会遇到的难题,网上求解这类问题的帖子非常多,下面我们就来谈谈ASP程序的加密方法. 一.如何加密ASP程序? 目前对ASP程序的加密方法主要有三种:脚本编码器(SRCENC.EXE)加密.组件加密.自编程序加密,下面我们就来展开介绍这三种加密方法. 1.使用微软的MS Script En

oracle中rman备份集加密的方法

 下面我们来看看一个oracle中rman备份集加密的方法,希望这个例子能帮助到各位朋友了.   数据的安全越来越重要,不是说你的生产库安全,你的数据就一定安全了,rman备份也是泄露数据的一个重要地方,如果别人拿到了你的备份集,一样等同入侵了你的生产库.为了rman备份的安全,最简单方式就是使用set encryption方式在rman备份过程中设置密码,需要版本为10.2及其以后企业版版,另外如果需要备份到带库只能使用oracle自己的osb(Oracle Secure Backup),注意

python中base64加密解密方法实例分析

  本文实例讲述了python中base64加密解密方法.分享给大家供大家参考.具体分析如下: 一.base64 Base64是一种基于64个可打印字符来表示二进制数据的表示方法.由于2的6次方等于64,所以每6个比特为一个单元,对应某个可打印字符.三个字节有24个比特,对应于4个Base64单元,即3个字节需要用4个可打印字符来表示.它可用来作为电子邮件的传输编码.在Base64中的可打印字符包括字母A-Z.a-z.数字0-9 ,这样共有62个字符,此外两个可打印符号在不同的系统中而不同.编码

简单快捷给u盘加密的方法

  信息时代飞速发展,生活中离不开移动储存设备---U盘,如何给U盘加密是本文的要点,那么我们要怎么做,用什么方法做呢?通常的方法就是把里面的资料文件压缩,然后加上密码.可是这样使用起来就变得麻烦,甚至浪费掉宝贵的时间.因为这普通得做法有这样一个缺陷,所以现在频频出现许多方便而实用的加密软件,不过可惜的是,有一部分加密软件都不适合在移动设备上使用.下面为大家介绍一种简单快捷的给u盘加密的方法. 1.首先上网下载一个u盘加密软件,这是一款专业的绿色u盘加密软件.把迅影加密王放在U盘上,然后运行建立

【高分求助】有什么字符串加密解密方法加密之后不是乱码?

问题描述 在C#中,有什么有什么字符串加密解密方法加密之后不是乱码?主要用于文件名加密,所以要求加密之后的字符串是规则的,否则无法用于文件名.另外文件名包括中文和英文.请高手帮忙,谢谢. 解决方案 解决方案二:自定义一个加密规则解决方案三:是不是乱码,自己定,你们的乱码概念,什么是乱码,也知道推敲解决方案四:就是能做文件名,一般的加密算法,加密之后都会有一些特殊字符无法作为文件名用.解决方案五:加密后转16进制形式串,或者其他进制比如0-9a-zA-Z再随便加两个其他符号构成64进制字符串解决方

有什么加密解密方法,在sql和java代码中都能使用的。

问题描述 有什么加密解密方法,在sql和java代码中都能使用的. 最近要做的一个需求是在已经做好的一个项目中,对某些表的某些字段的更新和查询进行加密解密操作,这些操作在存储过程和java代码都有.有没有一种加密解密方法在sql和java中都能使用的. 解决方案 DES,AES都可以http://www.cnblogs.com/CareySon/archive/2012/04/01/2428780.html

java 集合-求大神,发一个简易的银行系统代码,谢谢 急急急!!!

问题描述 求大神,发一个简易的银行系统代码,谢谢 急急急!!! 用txt存取用户信息,把用户信息放到ArrayList集合进行操作 包含 开户 存款 转账 谢谢 急急急!!! 解决方案 ArrayList用法: ArrayList是接口List的实现类,所以推荐以List接口来使用. 1.创建ArrayList的List接口 例: List books = new ArrayList(); Java支持泛形后,创建的同时可以指定元素的类型. 例: Class Book { ...... } Li

如何构建一个加密货币交换应用程序将要花费多少钱

你可能听说过加密货币世界最近的趋势.毕竟,现在每个人都在"挖矿".然而,没有足够的gpu来满足需求. 即使对那些不懂科技的人来说,加密货币也是可以实现的.在某种程度上,人们发现了以太.比特币和Litecoin,所有这些都可以像欧元和美元一样使用.事务是使用加密货币钱包进行的.这种形式的加密货币是诱人的:与各国货币相比,交易的成本是最低的. 现在,大量的货币和股票交易的人都专注于加密货币,希望以此赚钱.到处都有人在谈论这件事.一些唱反调的人说,比特币不会永远存在,比特币的构建会失败,导致