當前位置:首頁 » 密碼管理 » sha1加密c

sha1加密c

發布時間: 2023-03-28 04:46:30

A. .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均可以用

B. java的sha1加密和object-c的sha1加密後的值不一樣,誰能幫我解決一下。多謝了

結果是一樣的, 但是你多搞了一點: java你是用Base64編碼成字元串, 而ObjC你是直接用16進制輸出的, 你java上不Base64編碼, 也輸出成16進制, 就一樣了;

C. MD5、SHA1、CRC32值是干什麼的

MD5可以產生出一個128位(16位元組)的散列值(hash value),用於確保信息傳輸完整一致。MD5由MD4、MD3、MD2改進而來,主要增強演算法復雜度和不可逆性。MD5演算法因其普遍、穩定、快速的特點,仍廣泛應用於普通數據的加密保護領域 。

SHA-1(英語:Secure Hash Algorithm 1,中文名:安全散列演算法1)是一種密碼散列函數,美國國家安全局設計,並由美國國家標准技術研究所(NIST)發布為聯邦數據處理標准(FIPS)。SHA-1可以生成一個被稱為消息摘要的160位(20位元組)散列值,散列值通常的呈現形式為40個十六進制數。

CRC32檢錯能力極強,開銷小,易於用編碼器及檢測電路實現。從其檢錯能力來看,它所不能發現的錯誤的幾率僅為0.0047%以下。從性能上和開銷上考慮,均遠遠優於奇偶校驗及算術和校驗等方式。

因而,在數據存儲和數據通訊領域,CRC無處不在:著名的通訊協議X.25的FCS(幀檢錯序列)採用的是CRC-CCITT,ARJ、LHA等壓縮工具軟體採用的是CRC32,磁碟驅動器的讀寫採用了CRC16,通用的圖像存儲格式GIF、TIFF等也都用CRC作為檢錯手段。

(3)sha1加密c擴展閱讀:

在MD5演算法中,首先需要對信息進行填充,這個數據按位(bit)補充,要求最終的位數對512求模的結果為448。也就是說數據補位後,其位數長度只差64位(bit)就是512的整數倍。即便是這個數據的位數對512求模的結果正好是448也必須進行補位。

補位的實現過程:首先在數據後補一個1 bit; 接著在後面補上一堆0 bit, 直到整個數據的位數對512求模的結果正好為448。總之,至少補1位,而最多可能補512位 。

D. ASSCL排序後sha1加密方式

NSString * timeC = [NSString stringWithFormat:@"%ld",time(NULL)];

NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@"",@"key",timeC,@"time",@"ios"攜首,@"facility",nil];

NSArray *allKeyArray = [dict allKeys];

NSArray *afterSortKeyArray = [allKeyArray sortedArrayUsingComparator:^NSComparisonResult(id  _Nonnull obj1, id  _Nonnull obj2) {

return NSOrderedDescending;

}];

/辯正數/通過排列的key值獲取value

NSMutableArray *valueArray = [NSMutableArray array];

for (NSString *sortsing in afterSortKeyArray) {

NSString *valueString = [dict objectForKey:sortsing];

[valueArray addObject:valueString];

}

NSMutableArray *signArray = [NSMutableArray array];

for (int i = 0 ; i < afterSortKeyArray.count; i++) {

NSString * keyValue = [NSString stringWithFormat:@"%@=%@",afterSortKeyArray[i],valueArray[i]];

[signArray addObject:keyValue];

}

NSString *str = @"";

for (NSString *temp  in signArray) {

str = [str stringByAppendingString:[NSString stringWithFormat:@"%@&",temp]];

}

NSString *shalStr = [str substringToIndex:str.length - 1];

NSLog(@"shlstr = %@",shalStr);

//    shalStr = [shalStr sha1String];

shalStr = [self getSha1String:shalStr];

NSLog(@"清嘩sign = %@", shalStr);

//sha1加密

//sha1加密方式

+ (NSString *)getSha1String:(NSString *)srcString{

const char *cstr = [srcString cStringUsingEncoding:NSUTF8StringEncoding];

NSData *data = [NSData dataWithBytes:cstr length:srcString.length];

uint8_t digest[CC_SHA1_DIGEST_LENGTH];

CC_SHA1(data.bytes, data.length, digest);

NSMutableString* result = [NSMutableString stringWithCapacity:CC_SHA1_DIGEST_LENGTH * 2];

for(int i = 0; i < CC_SHA1_DIGEST_LENGTH; i++) {

[result appendFormat:@"%02x", digest[i]];

}

return result;

}

E. c語言 實現sha1演算法

你再知道裡面搜「sha1演算法」就有。void sha1_finish( sha1_context *ctx, uint8 digest[20] )函數就是你要的。

F. 求祖沖之(zuc)密碼演算法演算法加密C語言實現代碼。

這么久沒人答,我都弄懂了。祖沖之演算法分3個演算法ZUC是祖沖之演算法的核心,僅產生密鍵流KS。供EEA3和EIA3調用。EEA3是加密演算法,用KS捆綁上用戶的密鑰螞畢雀,加密用戶數據D,變成密文。相當於國際上的RSA、DES、AES演算法。作用是對稱的加密解密演算法EIA3是數據完整性演算法,MAC的一種。捆綁上用數答戶的密鑰,結合KS,生成散列值。相當於國際上的HMAC結合MD5,SHA1的用法。用於密碼授權值的悶早生成和保存。

G. 同樣的字元串,.net用SHA1加密出來的結果和網站的加密結果不同。求解

sql Server 2005下自帶的函數HashBytes() ,此函數是微軟在SQL Server 2005中提供的,可以用來計算一個字元串的MD5和SHA1值,使用方法如下:

--獲取123456的MD5加密串
select hashbytes('MD5', '123456') ;
--獲取123456的SHA1加密串
select hashbytes('SHA1', '123456') ;
有了這個函數可以在SQL Server中為字元串進行加密,但是HashBytes() 函數的返回結果是VarBinary類型(以 0x 開頭 16 進制形式的二進制數據)。通常情況下,我們需要的都是字元串型的數據,很多人首先想到的可能就是用CAST或Convert函數將VarBinary轉換為VarChar,但這樣轉換後的結果會是亂碼,正確轉換VarBinary可變長度二進制型數據到16進制字元串應該使用系統內置函數sys.fn_VarBinToHexStr()或sys.fn_SqlVarBaseToStr(只在sqlserver2005以後的有),如下所示:

select sys.fn_VarBinToHexStr(hashbytes('MD5', '123456'))
然後就可以截取需要的部分:

set right(sys.fn_VarBinToHexStr(hashbytes('MD5','123456')),32)
為MD5加密串。

熱點內容
內置存儲卡可以拆嗎 發布:2025-05-18 04:16:35 瀏覽:332
編譯原理課時設置 發布:2025-05-18 04:13:28 瀏覽:372
linux中進入ip地址伺服器 發布:2025-05-18 04:11:21 瀏覽:607
java用什麼軟體寫 發布:2025-05-18 03:56:19 瀏覽:27
linux配置vim編譯c 發布:2025-05-18 03:55:07 瀏覽:102
砸百鬼腳本 發布:2025-05-18 03:53:34 瀏覽:936
安卓手機如何拍視頻和蘋果一樣 發布:2025-05-18 03:40:47 瀏覽:734
為什麼安卓手機連不上蘋果7熱點 發布:2025-05-18 03:40:13 瀏覽:799
網卡訪問 發布:2025-05-18 03:35:04 瀏覽:506
接收和發送伺服器地址 發布:2025-05-18 03:33:48 瀏覽:368