❶ iOS 中MD5加密
//MD5加密方法
-(NSString *)md5:(NSString *)input{
const char *cStr = [input UTF8String];
unsigned char digest[CC_MD5_DIGEST_LENGTH];
CC_MD5(cStr, strlen(cStr), digest);
NSMutableString *output = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH * 2];
for(int i = 0; i < CC_MD5_DIGEST_LENGTH; i++)
[output appendFormat:@"%02x", digest[i]];
return output;
}
//宏磨調歷絕斗用MD5方法:
NSString *str = @"123456";
NSString *result = [self md5:str];
NSLog(@"%@",result);
base64加密
NSString *urlStr = @"http://rd.cailebang.com/System/DownLoad/page?";
//加密肢磨
NSData *bodyData = [urlStr dataUsingEncoding:NSUTF8StringEncoding];
NSLog(@"bodyData---%@",bodyData);
NSString *base64Str = [bodyData :0];
NSLog(@"base64----%@",base64Str);
NSString *urlString = [urlStr stringByAppendingString:base64Str];
NSURL *urlShare = [NSURL URLWithString:urlString];
//解
NSData *jieData = [[NSData alloc] initWithBase64EncodedString:base64Str options:];
NSString *jieStr = [[NSString alloc] initWithData:jieData encoding:NSUTF8StringEncoding];
NSLog(@"jieStr---%@",jieStr);
❷ iOS之MD5加密、加鹽
MD5加密:HASH演算法一種、 是生成32位的數字字母混合碼。
特點:
1、任意數據得出的MD5值長度都是32
2、對原數據進行任何改動,所得到的MD5值都有很大區別
應用:
主要運用在數字簽名、口令加密等方面
MD5改進(加鹽等):
現在的MD5已不再是絕對安全,對此,可以對MD5稍作改進,以增加解密的難度
加鹽(Salt):在明文的固定位置插入隨機串,然後再進行MD5
寫一個NSString分類,NSString+wxMD5
md5解密網站: https://www.cmd5.com
使用示例
❸ md5 數據加密是什麼 ios
+ (NSString*)md5HexDigest:(NSString*)input {
const char* str = [input UTF8String];
unsigned char result[CC_MD5_DIGEST_LENGTH];
CC_MD5(str, strlen(str), result);
NSMutableString *ret = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH*2];
for(int i = 0; i<CC_MD5_DIGEST_LENGTH; i++) {
[ret appendFormat:@"%02x",result[i]];
}
return ret;
}
❹ 介紹iOS中MD5加密演算法的使用
前言
軟體開發過程中,對數據進行加密是保證數據安全的重要手段,常見的加密有Base64加密和MD5加密。Base64加密是可逆的,MD5加密目前來說一般是不可逆的。
MD5生成的是固定的128bit,即128個0和1的二進制位,而在實際應用開發中,通常是以16進制輸出的,所以正好就是32位的16進制,說白了也就是32個16進制的數字。
MD5主要特點是 不可逆,相同數據的MD5值肯定一樣,不同數據的MD5值不一樣(也不是絕對的,但基本是不能一樣的)。
MD5演算法還具有以下性質:
1、壓縮性:任意長度的數據,算出的MD5值長度都是固定的。
2、容易計算:從原數據計算出MD5值很容易。
3、抗修改性:對原數據進行任何改動,哪怕只修改1個位元組,所得到的MD5值都有很大區別。
4、弱抗碰撞:已知含氏原數據和其MD5值,想找到一個具有相同MD5值的數據(即偽造數據)是非常困難的。
5、強抗碰撞:想緩顫找到兩個不同的數據,使它們具有相同的MD5值,是非常困難的。
6、MD5加密是不可解密的,但是網上有一些解析MD5的,那個相當於一個大型的資料庫,通過匹配MD5去找到原密碼。所以,只要在要加密的字元串前面加上一些字母數字元號或者多次MD5加密,這樣出來的結果一般是解析不出來的。
MD5的應用:
由於MD5加密演算法具有較好的安全性,而且免費,因此該加密演算法被廣泛使用
大多數的'登錄功能向後台提交密碼時都會使用到這種演算法
注意點:
(1)一定要和後台開發人員約定好,MD5加密的位數是16位還是32位(大多數都是32位的),16位的可以通過32位的轉換得到。
(2)MD5加密區分 大小寫,使用時要和後台約定好。
MD5解密:
解密網站:http://www.cmd5.com/
為了讓MD5碼更加安全 涌現了很多其他方法 如加鹽。 鹽要足夠長足夠亂 得到的MD5碼就很難查到。
終端代碼:$ echo -n abc|openssl md5 給字元串abc加密、
蘋果包裝了MD5加密的擾老敗方法,使用起來十分的方便。
#import@interface MD5Encrypt : NSObject// MD5加密/**由於MD5加密是不可逆的,多用來進行驗證*/// 32位小寫+(NSString *)MD5ForLower32Bate:(NSString *)str;// 32位大寫+(NSString *)MD5ForUpper32Bate:(NSString *)str;// 16為大寫+(NSString *)MD5ForUpper16Bate:(NSString *)str;// 16位小寫+(NSString *)MD5ForLower16Bate:(NSString *)str;@end
#import "MD5Encrypt.h"#import@implementation MD5Encrypt#pragma mark - 32位 小寫+(NSString *)MD5ForLower32Bate:(NSString *)str{ //要進行UTF8的轉碼 const char* input = [str UTF8String]; unsigned char result[CC_MD5_DIGEST_LENGTH]; CC_MD5(input, (CC_LONG)strlen(input), result); NSMutableString *digest = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH * 2]; for (NSInteger i = 0; i < CC_MD5_DIGEST_LENGTH; i++) { [digest appendFormat:@"%02x", result[i]]; } return digest;}#pragma mark - 32位 大寫+(NSString *)MD5ForUpper32Bate:(NSString *)str{ //要進行UTF8的轉碼 const char* input = [str UTF8String]; unsigned char result[CC_MD5_DIGEST_LENGTH]; CC_MD5(input, (CC_LONG)strlen(input), result); NSMutableString *digest = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH * 2]; for (NSInteger i = 0; i < CC_MD5_DIGEST_LENGTH; i++) { [digest appendFormat:@"%02X", result[i]]; } return digest;}#pragma mark - 16位 大寫+(NSString *)MD5ForUpper16Bate:(NSString *)str{ NSString *md5Str = [self MD5ForUpper32Bate:str]; NSString *string; for (int i=0; i<24; i++) { string=[md5Str substringWithRange:NSMakeRange(8, 16)]; } return string;}#pragma mark - 16位 小寫+(NSString *)MD5ForLower16Bate:(NSString *)str{ NSString *md5Str = [self MD5ForLower32Bate:str]; NSString *string; for (int i=0; i<24; i++) { string=[md5Str substringWithRange:NSMakeRange(8, 16)]; } return string;}@end
❺ ios md5加密原理是什麼意思
MD5加密演算法原理MD5的全稱是Message-Digest Algorithm 5(信息-摘要演算法),在90年代初由MIT Laboratory for Computer Science和RSA Data Security Inc的Ronald L. Rivest開發出來,經MD2、MD3和MD4發展而來。它的作用是讓大容量信息在用數字簽名軟體簽署私人密匙前被"壓縮"成一種保密的格式(就是把一個任意長度的位元組串變換成一定長的大整數)。不管是MD2、MD4還是MD5,它們都需要獲得一個隨機長度的信息並產生一個128位的信息摘要。雖然這些演算法的結構或多或少有些相似,但MD2的設計與MD4和MD5完全不同,那是因為MD2是為8位機器做過設計優化的,而MD4和MD5卻是面向32位的電腦。這三個演算法的描述和C語言源代碼在Internet RFCs 1321中有詳細的描述( http://www.ietf.org/rfc/rfc1321.txt),這是一份最權威的文檔,由Ronald L. Rivest在1992年8月向IEFT提交。. .
❻ MD5加密是怎麼實現加密的
MD5加密步驟如下:
搜索站長工具,點擊打開。點擊導航里的代碼轉換工具。選擇MD5加密。輸入欲加密的字元串。選核液擇多少位。點擊加密棚拆。MD5即信息摘要演算法5,是計算機廣泛使用的散列演算法之一,誕生於20世紀90年代初。用於確保信息傳輸完整一致,具有較鏈氏棗好的安全性,廣泛運用於數字簽名、文件完整性驗證以及口令加密等領域。
❼ ios 怎麼使用md5進行加密
ios使用md5進行加密的方法:
1、定義頭文件:MyAdditions.h
@interface NSString (MyAdditions)
- (NSString *)md5;
@end
@interface NSData (MyAdditions)
- (NSString*)md5;
@end
2、實現主文件:MyAdditions.m
#import "MyAdditions.h"
#import <CommonCrypto/CommonDigest.h> // Need to import for CC_MD5 access
@implementation NSString (MyAdditions)
- (NSString *)md5
{
const char *cStr = [self UTF8String];
unsigned char result[CC_MD5_DIGEST_LENGTH];
CC_MD5( cStr, (int)strlen(cStr), result ); // This is the md5 call
return [NSString stringWithFormat:
@"%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",
result[0], result[1], result[2], result[3],
result[4], result[5], result[6], result[7],
result[8], result[9], result[10], result[11],
result[12], result[13], result[14], result[15]
];
}
@end
@implementation NSData (MyAdditions)
- (NSString*)md5
{
unsigned char result[CC_MD5_DIGEST_LENGTH];
CC_MD5( self.bytes, (int)self.length, result ); // This is the md5 call
return [NSString stringWithFormat:
@"%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",
result[0], result[1], result[2], result[3],
result[4], result[5], result[6], result[7],
result[8], result[9], result[10], result[11],
result[12], result[13], result[14], result[15]
];
}
@end