iOS SHA256加密 RSA公鑰加密

2021-09-01 02:47:14 字數 1321 閱讀 7957

這兩天公司有這樣兩個需求,乙個是從前端(h5)互動,獲取到乙個字串,要求對這個字串進行,sha256計算摘要(也相當於加密),之後得到的是uint8_t型別的位元組陣列,然後對位元組陣列進行rsa公鑰加密。在base64編碼,返回給前端(h5 ios也是前端),最終資料還是給後台。另乙個需求就是---公鑰驗籤,就是後台給了txt檔案,裡面有加籤和加密過的文字字串,需要把這個文字字串處理下,和原來資料驗籤,看看是不是被修改過。

雜湊值用作表示大量資料的固定大小的唯一值。資料的少量更改會在雜湊值中產生不可預知的大量更改。所以為啥要sha256。

sha256的時候遇到乙個坑,後台要的資料是sha256之後的位元組陣列。網上大部分sha256之後都是字串,菜鳥,之前沒了解過位元組陣列。

#import #import - (nsdata *)sha256:(nsstring *)shastr
這個將 bytes-----> nsdata,這個方法可以,解決後台給你的字串中含有中文。我就是用的這個方法

- (nsstring *)sha256:(nsstring *)inputstring

return [outputstring lowercasestring];

}

這裡是將bytes資料中的數字,%hhu---數字型別,你可列印下,是一串數字。

在網上看的方法中還有轉化為,%02x---16進製制,然後拼接為16進製制的字串,之前我就是用的這個,怎麼處理都是驗籤失敗,因為後台要的是bytes陣列。當然這個他可以轉換---(此處省略--cao---)

網上還有封裝好的sha1,sha256等等。可以去找找。這裡sha256就弄好了。注意後台要的什麼資料,雞雞疼。

//rsa 加密

- (nsdata*)rsaencryptdata:(nsdata*)data

seckeyref securitykey = sectrustcopypublickey(mytrust);

cfrelease(mycertificate);

cfrelease(mypolicy);

cfrelease(mytrust);

return securitykey;

}

這個方法就是獲取本地公鑰。網上有的是把這個公鑰換成data或者是字串了,這個看情況使用的地方。這裡rsa加密就可以弄好了。

static nsstring *base64_encode_data(nsdata *data)
把這個base64字串傳給後台或者h5傳過去就可以了。

需求二,放在下篇了,要不有點亂。

MD5加密 SHA256加密 RSA加密

rsa加密 md5加密 1 md5加密較為可靠,需要引入commons codec 1.9.jar 2 md5加密不可逆,也就是加密後不能再根據加密的秘鑰去解密,網上md5解密實際上是暴力破解。如果需要可逆的話,請選擇des aes 異或 凱撒 rsa等。3 md5加密可以實現任何物件加密,這就決定...

RSA公鑰加密演算法

rsa 離散對數 橢圓曲線是目前三大公鑰加密演算法,rsa是其中應用最多的一種。下面將介紹rsa演算法的理論基礎。公鑰加密或說非對稱加密其作用已經不言而喻,在實際中已經得到大量應用,比如https證書,其中便包含了 的公鑰資訊。非對稱加密與對稱加密最大的區別是,加密與解密使用不同的金鑰,通過公鑰加密...

RSA公鑰加密演算法

公鑰加密或說非對稱加密其作用已經不言而喻,在實際中已經得到大量應用,比如https證書,其中便包含了 的公鑰資訊。非對稱加密與對稱加密最大的區別是,加密與解密使用不同的金鑰,通過公鑰加密的內容只有通過私鑰才能解密,反之亦然。因此,發布者完全可以把公鑰公布於眾,使傳送者便於查詢。與此相反,對稱加密需要...