sha1加密c
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加密串。