‘壹’ 熟悉sha1加密的帮忙看看啊!急~~
"123456" --(sha1加密)--> 字节流A --(Base64 encode)--> "fEqNCco3Yq9h5ZUglD3CZJT4lBs=" --(Base64 decode)--> 字节流A --(每个字节的整数值用16进制表示)--> ""
‘贰’ MD5,sha1,sha256分别输出多少位啊
MD5输出128位、SHA1输出160位、SHA256输出256位。
1、MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。
2、SHA1安全哈希算法(Secure Hash Algorithm)主要适用于数字签名标准 里面定义的数字签名算法。对于长度小于2^64位的消息,SHA1会产生一个160位的消息摘要。
3、sha256哈希值用作表示大量数据的固定大小的唯一值。数据的少量更改会在哈希值中产生不可预知的大量更改。SHA256 算法的哈希值大小为 256 位。
(2)csha1加密解密扩展阅读:
MD5应用:
1、一致性验证
MD5的典型应用是对一段信息产生信息摘要,以防止被篡改。具体来说文件的MD5值就像是这个文件的“数字指纹”。每个文件的MD5值是不同的,如果任何人对文件做了任何改动,其MD5值也就是对应的“数字指纹”就会发生变化。
比如下载服务器针对一个文件预先提供一个MD5值,用户下载完该文件后,用我这个算法重新计算下载文件的MD5值,通过比较这两个值是否相同,就能判断下载的文件是否出错,或者说下载的文件是否被篡改了。
2、数字签名
MD5的典型应用是对一段Message(字节串)产生fingerprint(指纹),以防止被“篡改”。
例子:将一段话写在一个叫 readme.txt文件中,并对这个readme.txt产生一个MD5的值并记录在案,然后可以传播这个文件给,如果修改了文件中的任何内容,你对这个文件重新计算MD5时就会发现(两个MD5值不相同)。
如果再有一个第三方的认证机构,用MD5还可以防止文件作者的“抵赖”,这就是所谓的数字签名应用。
3、安全访问认证
MD5还广泛用于操作系统的登陆认证上,如Unix、各类BSD系统登录密码、数字签名等诸多方面。如在Unix系统中用户的密码是以MD5(或其它类似的算法)经Hash运算后存储在文件系统中。
当用户登录的时候,系统把用户输入的密码进行MD5 Hash运算,然后再去和保存在文件系统中的MD5值进行比较,进而确定输入的密码是否正确。
即使暴露源程序和算法描述,也无法将一个MD5的值变换回原始的字符串,从数学原理上说,是因为原始的字符串有无穷多个,这有点象不存在反函数的数学函数。
‘叁’ C# MD5或SHA-1加密
publicstaticstringget32Md5(stringstr)
{
try
{
stringcl=str;
stringpwd="";
MD5md5=MD5.Create();//实例化一个md5对像
//加密后是一个字节类型的数组,这里要注意编码UTF8/Unicode等的选择
byte[]s=md5.ComputeHash(Encoding.UTF8.GetBytes(cl));
//通过使用循环,将字节类型的数组转换为字符串,此字符串是常规字符格式化所得
for(inti=0;i<s.Length;i++)
{
//将得到的字符串使用十六进制类型格式。格式后的字符是小写的字母,如果使用大写(X)则格式后的字符是大写字符
pwd=pwd+s[i].ToString("X");
}
returnpwd;
}
catch(Exceptionex)
{
returnnull;
}
}
‘肆’ md5 解密!
解密后 :
16位:25c08adc00769881-25C08ADC00769881
小写:
大写:
SHA1:
SHA256:
结果: zhaowei1988
‘伍’ 如何使用C#的SHA1对字符串加密
private static string SHA1(string text)
{
byte[] cleanBytes = Encoding.Default.GetBytes(text);
byte[] hashedBytes = System.Security.Cryptography.SHA1.Create().ComputeHash(cleanBytes);
return BitConverter.ToString(hashedBytes).Replace("-", "");
}
调用这个函数就可以得到你要的sha1值了。
另外还有个概念要澄清,SHA1是散列算法,不是加密。
‘陆’ 如何计算 MD5 或 sha-1 加密哈希值的文件
当您将此哈希算法应用到任意数量的数据例如,一个二进制文件,结果是一个散列或消息摘要。此哈希具有固定的大小。MD5 是创建一个 128 位的哈希值的哈希算法。Sha-1 是创建一个 160 位的哈希值的哈希算法。
文件校验和完整性验证程序 (FCIV) 实用程序可用于计算一个文件的 MD5 或 sha-1 加密哈希值。有关文件校验和完整性验证程序 (FCIV) 实用程序的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
841290可用性和文件校验和完整性验证程序实用程序的说明
计算的 MD5 和 sha-1 哈希值的文件,请在命令行键入以下命令:
FCIV-md5-sha1 path\filename.ext
例如,若要计算在%Systemroot%文件夹中 \System32 Shdocvw.dll 文件的 MD5 和 sha-1 哈希值,请键入下面的命令:
FCIV-md5-sha1 c:\windows\system32\shdocvw.dll
这篇文章中的信息适用于:
Customer Service and Support Information
关键字:
kbmt kmcustomerservice kbhowto KB889768 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 889768
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任
‘柒’ c语言 实现sha1算法
你再知道里面搜“sha1算法”就有。void sha1_finish( sha1_context *ctx, uint8 digest[20] )函数就是你要的。
‘捌’ .net 中的sha1加密
我用的是微软的企业库
引用using Microsoft.Practices.EnterpriseLibrary.Security.Cryptography;
///<summary> Copyright (C) 2008 公司 版权所有。
/// 文件名:CommonCryptography.cs
/// 方法功能描述: 公共方法库->加密数据
/// 创建标识 2008-7-26
/// </summary>
/// <param name="data"></param>
/// <returns></returns>
public static string EncryptData(string data)
{
if (string.IsNullOrEmpty(data))
return null;
string encryptedData;
try
{
encryptedData = Cryptographer.EncryptSymmetric(SYMMMANAGE, data);
}
catch (Exception ex)
{
throw ex;
}
return encryptedData;
}
建议你封装成你自己 的类,用起来方便..不管CS还是BS均可以用
‘玖’ java的sha1加密和object-c的sha1加密后的值不一样,谁能帮我解决一下。多谢了
结果是一样的, 但是你多搞了一点: java你是用Base64编码成字符串, 而ObjC你是直接用16进制输出的, 你java上不Base64编码, 也输出成16进制, 就一样了;