sha1加密
① 什麼是SHA1加密技術
Algorithm)又叫安全哈希加密技術,是當今世界最先近的加密演算法。主要用於文件身份識別、數字簽名和口令加密等。 對於明文信息A,通過SHA1演算法,生成一條160位長的識別碼B。且明文信息A和識別碼B之間同時滿足以下條件: 1、對於任意兩條不同的明文信息A1、A2,其識別碼B1、B2都不相同。 2、無法通過逆向演算法由識別碼B倒推出明文信息A。 MOONCRM的用戶密碼採用SHA1加密存儲,即伺服器上存儲的只是 由用戶密碼生成的識別碼,而用戶密碼本身並沒有存儲在伺服器上。用戶輸入登陸口令時,系統會根據輸入口令生成相應識別碼並與系統中所存儲的識別碼進行比較,如二者一致,則認為口令正確。系統中沒有存儲用戶原始的口令值,即使有人獲得口令文件,也無法破解用戶登陸密碼,確保用戶密碼絕對安全。 在ASP.NET中,可以通過以下命令來加密密碼字元串: //passwordString是密碼字元串 System.Web.Security.FormsAuthentication. (passwordString, "SHA1"); 這樣就可以和系統中所存儲的識別碼進行比較了! --------北大青鳥西安華美---------
② 介面進行sha1加密是什麼意思
sha1是一種常用的加密函數。
你可以查詢你所使用的編程語言的手冊去找sha1函數去處理數據然後將處理過的數據發送到介面即可。
沒種語言的sha1函數名不一樣。例如php的sha1函數名就交sha1()
③ sha1是不是可以生成密鑰 然後用aes演算法加密 求沒有那個大蝦能幫我解決一下
是可以這么做的,而且這個也是一個比較通用的做法。sha1的結果是16byte(128位)的,aes的時候你採用128的加密cbc模式就好了。SHA1的話,你只需要一個輸入就可以了,不需要其他的向量。
④ java的sha1加密和object-c的sha1加密後的值不一樣,誰能幫我解決一下。多謝了
結果是一樣的, 但是你多搞了一點: java你是用Base64編碼成字元串, 而ObjC你是直接用16進制輸出的, 你java上不Base64編碼, 也輸出成16進制, 就一樣了;
⑤ 請問SHA1加密演算法也是不可逆的嗎
是的,同MD5一樣都是不可逆的加密演算法。
安全性的碰撞對比:
MD5為2^64,sha1為2^60。這么你可能不理解,通俗的講就是每2^64個樣本中能找到兩個MD5相同的值,sha1類似。但這只是理論,從實際樣本取樣的情況,要比這個值小很多。
現在的MD5和sha1加密都用暴力破解,就算拿不到你的原始串,也是很容易被取出來的。
⑥ 加密演算法md5和sha1是得到加密結果後是不可以解密的。那有沒有可以解密的
請搜索RSA,DES演算法
⑦ 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 位。
(7)sha1加密擴展閱讀:
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的值變換回原始的字元串,從數學原理上說,是因為原始的字元串有無窮多個,這有點象不存在反函數的數學函數。
⑧ 用java程序進行sha1加密,怎麼弄
publicclassSha1{
/**
*SHA1安全加密演算法
*@parammaps參數key-valuemap集合
*@return
*@throwsDigestException
*/
publicstaticStringSHA1(Map<String,Object>maps)throwsDigestException{
//獲取信息摘要-參數字典排序後字元串
Stringdecrypt=getOrderByLexicographic(maps);
try{
//指定sha1演算法
MessageDigestdigest=MessageDigest.getInstance("SHA-1");
digest.update(decrypt.getBytes());
//獲取位元組數組
bytemessageDigest[]=digest.digest();
//CreateHexString
StringBufferhexString=newStringBuffer();
//位元組數組轉換為十六進制數
for(inti=0;i<messageDigest.length;i++){
StringshaHex=Integer.toHexString(messageDigest[i]&0xFF);
if(shaHex.length()<2){
hexString.append(0);
}
hexString.append(shaHex);
}
returnhexString.toString().toUpperCase();
}catch(NoSuchAlgorithmExceptione){
e.printStackTrace();
thrownewDigestException("簽名錯誤!");
}
}
/**
*獲取參數的字典排序
*@parammaps參數key-valuemap集合
*@returnString排序後的字元串
*/
(Map<String,Object>maps){
returnsplitParams(lexicographicOrder(getParamsName(maps)),maps);
}
/**
*獲取參數名稱key
*@parammaps參數key-valuemap集合
*@return
*/
privatestaticList<String>getParamsName(Map<String,Object>maps){
List<String>paramNames=newArrayList<String>();
for(Map.Entry<String,Object>entry:maps.entrySet()){
paramNames.add(entry.getKey());
}
returnparamNames;
}
/**
*參數名稱按字典排序
*@paramparamNames參數名稱List集合
*@return排序後的參數名稱List集合
*/
privatestaticList<String>lexicographicOrder(List<String>paramNames){
Collections.sort(paramNames);
returnparamNames;
}
/**
*拼接排序好的參數名稱和參數值
*@paramparamNames排序後的參數名稱集合
*@parammaps參數key-valuemap集合
*@returnString拼接後的字元串
*/
(List<String>paramNames,Map<String,Object>maps){
StringBuilderparamStr=newStringBuilder();
for(StringparamName:paramNames){
paramStr.append(paramName);
for(Map.Entry<String,Object>entry:maps.entrySet()){
if(paramName.equals(entry.getKey())){
paramStr.append(String.valueOf(entry.getValue()));
}
}
}
returnparamStr.toString();
}
⑨ .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加密
簡單的做法是
1、使用apache的codec jar包對string進行加密,先下載並引入jar包:http://commons.apache.org/proper/commons-codec/
2、生成:
String sign = DigestUtils.shaHex(str);
3.也可以使用工具在線進行sha加密,參考 hash值(md5, sha1, sha256, sha512,crc32) 在線計算,http://www.it399.com/m/FileHash。望採納,謝謝。