在iOS開發中,OC和Java都支持SHA1加密算法,這是一種經典的加密方式,可以幫助我們更安全地存儲和傳輸敏感數據。
以下是OC實現SHA1加密的代碼:
- (NSString *)sha1:(NSString *)inputStr { const char *cstr = [inputStr cStringUsingEncoding:NSUTF8StringEncoding]; NSData *data = [NSData dataWithBytes:cstr length:inputStr.length]; uint8_t digest[CC_SHA1_DIGEST_LENGTH]; CC_SHA1(data.bytes, (CC_LONG)data.length, digest); NSMutableString *output = [NSMutableString stringWithCapacity:CC_SHA1_DIGEST_LENGTH * 2]; for (int i = 0; i < CC_SHA1_DIGEST_LENGTH; i++) { [output appendFormat:@"%02x", digest[i]]; } return output; }
以上代碼使用了系統的CC_SHA1函數來實現SHA1加密,將字符串轉換為NSData類型的數據,然后對數據進行加密處理,最后將加密結果轉換為十六進制字符串輸出。
Java中同樣可以實現SHA1加密,以下是Java的SHA1加密實現:
public static String sha1(String inputStr) throws Exception { MessageDigest md = MessageDigest.getInstance("SHA-1"); md.update(inputStr.getBytes()); byte[] output = md.digest(); StringBuilder sb = new StringBuilder(); for (byte b : output) { sb.append(Integer.toHexString((b >> 4) & 0xf)); sb.append(Integer.toHexString(b & 0xf)); } return sb.toString(); }
與OC類似,Java中也是通過MessageDigest類實現SHA1加密,將字符串轉換為byte數組后進行加密處理,最后將加密結果轉換為十六進制字符串輸出。
總的來說,無論是OC還是Java,都可以通過相應的函數庫實現SHA1加密算法,保護數據的安全性和完整性。
下一篇php和java 區別