一、批量修改md5值
創(chuàng)新互聯(lián)建站專注于袁州企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,商城網(wǎng)站制作。袁州網(wǎng)站建設(shè)公司,為袁州等地區(qū)提供建站服務(wù)。全流程按需求定制網(wǎng)站,專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)建站專業(yè)和態(tài)度為您提供的服務(wù)
ImageOptim Mac 下無損壓縮圖片工具,將包含圖片的文件夾拖入工具,會自動掃描文件夾下的所有文件,自動選擇最優(yōu)算法進(jìn)行優(yōu)化。一般第一次優(yōu)化項目時,會有幾M到10幾M的優(yōu)化效果。
ImageMagick ImageMagick: 是一款創(chuàng)建、編輯、合成,轉(zhuǎn)換圖像的命令行工具。 通過 brew 安裝 imagemagick
brew install imagemagick
壓縮文件夾下所有 png 文件,會修改 md5 值 ,進(jìn)入存放圖片的文件夾,運行命令即可
cd 文件路徑find . -iname "*.png" -exec echo {} \; -exec convert {} {} \;
二、單個修改md5值(mp4等類型)
(1)查看 md5 值
打開 Terminal (終端),輸入「md5」,空格,文件路徑,最終命令類似于:
//方式一md5 文件路徑//方式二cd 文件路徑md5 xxx.mp4//方式三md5-q 文件路徑
(2)修改 md5 值
修改文件的md5值命令,輸入echo 任意字符 文件路徑,最終命令類似于:
echo xxx 文件路徑
//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;
}
//調(diào)用MD5方法:
NSString *str = @"123456";
NSString *result = [self md5:str];
NSLog(@"%@",result);
base64加密
NSString *urlStr = @"?";
//加密
NSData *bodyData = [urlStr dataUsingEncoding:NSUTF8StringEncoding];
NSLog(@"bodyData---%@",bodyData);
NSString *base64Str = [bodyData base64EncodedStringWithOptions:0];
NSLog(@"base64----%@",base64Str);
NSString *urlString = [urlStr stringByAppendingString:base64Str];
NSURL *urlShare = [NSURL URLWithString:urlString];
//解
NSData *jieData = [[NSData alloc] initWithBase64EncodedString:base64Str options:NSDataBase64DecodingIgnoreUnknownCharacters];
NSString *jieStr = [[NSString alloc] initWithData:jieData encoding:NSUTF8StringEncoding];
NSLog(@"jieStr---%@",jieStr);
當(dāng)然一般我們現(xiàn)有的涉及到文件/信息加密,或提高數(shù)據(jù)安全級別一般都會選擇 CommonCrypto 來完成任務(wù)。
可以從Oc 上面先了解它的函數(shù)聲明:
Swift + 3DES
補(bǔ)充:
CCOperation (操作)、 CCAgorithm (算法) 和 CCOptions (設(shè)置)本質(zhì)上就是 uint32_t (一個占32位存儲的 unsigned int ),所以我們可以通過 CommonCrypto 常量來構(gòu)造它們。
附帶一個Swift 版的 Base64 + String
swift + MD5
Oc + MD5
一、簡單說明
1.說明
在開發(fā)應(yīng)用的時候,數(shù)據(jù)的安全性至關(guān)重要,而僅僅用POST請求提交用戶的隱私數(shù)據(jù),還是不能完全解決安全問題。
如:可以利用軟件(比如Charles)設(shè)置代理服務(wù)器,攔截查看手機(jī)的請求數(shù)據(jù)
“青花瓷”軟件
因此:提交用戶的隱私數(shù)據(jù)時,一定不要明文提交,要加密處理后再提交
2.常見的加密算法
MD5 SHA DES 3DES RC2和RC4 RSA IDEA DSA AES
3.加密算法的選擇
一般公司都會有一套自己的加密方案,按照公司接口文檔的規(guī)定去加密
二、MD5
1.簡單說明
MD5:全稱是Message Digest Algorithm 5,譯為“消息摘要算法第5版”
效果:對輸入信息生成唯一的.128位散列值(32個字符)
2.MD5的特點
(1)輸入兩個不同的明文不會得到相同的輸出值
(2)根據(jù)輸出值,不能得到原始的明文,即其過程不可逆
3.MD5的應(yīng)用
由于MD5加密算法具有較好的安全性,而且免費,因此該加密算法被廣泛使用
主要運用在數(shù)字簽名、文件完整性驗證以及口令加密等方面
4.MD5破解
MD5解密網(wǎng)站:
5.MD5改進(jìn)
現(xiàn)在的MD5已不再是絕對安全,對此,可以對MD5稍作改進(jìn),以增加解密的難度
加鹽(Salt):在明文的固定位置插入隨機(jī)串,然后再進(jìn)行MD5
先加密,后亂序:先對明文進(jìn)行MD5,然后對加密得到的MD5串的字符進(jìn)行亂序
總之宗旨就是:黑客就算攻破了數(shù)據(jù)庫,也無法解密出正確的明文
代碼示例:
復(fù)制代碼 代碼如下:
#import "HMViewController.h"
#import "NSString+Hash.h"
#define Salt @"fsdhjkfhjksdhjkfjhkd546783765"
@interface HMViewController ()
@end
@implementation HMViewController
- (void)viewDidLoad
{
[super viewDidLoad];
[self digest:@"123"]; //
[self digest:@"abc"];
[self digest:@"456"];
}
/**
* 直接用MD5加密
*/
- (NSString *)digest:(NSString *)str
{
NSString *anwen = [str md5String];
NSLog(@"%@ - %@", str, anwen);
return anwen;
}
/**
* 加鹽
*/
- (NSString *)digest2:(NSString *)str
{
str = [str stringByAppendingString:Salt];
NSString *anwen = [str md5String];
NSLog(@"%@ - %@", str, anwen);
return anwen;
}
/**
* 多次MD5
*/
- (NSString *)digest3:(NSString *)str
{
NSString *anwen = [str md5String];
anwen = [anwen md5String];
NSLog(@"%@ - %@", str, anwen);
return anwen;
}
/**
* 先加密, 后亂序
*/
- (NSString *)digest4:(NSString *)str
{
NSString *anwen = [str md5String];
// 注冊: 123 ---- 2CB962AC59075B964B07152D234B7020
// 登錄: 123 --- 202CB962AC59075B964B07152D234B70
NSString *header = [anwen substringToIndex:2];
NSString *footer = [anwen substringFromIndex:2];
anwen = [footer stringByAppendingString:header];
NSLog(@"%@ - %@", str, anwen);
return anwen;
}
@end
(1)直接使用MD5加密(去MD5解密網(wǎng)站即可破解)
(2)使用加鹽(通過MD5解密之后,很容易發(fā)現(xiàn)規(guī)律)
(3)多次MD5加密(使用MD5解密之后,發(fā)現(xiàn)還是密文,那就接著MD5解密)
(4)先加密,后亂序(破解難度增加)
三、注冊和驗證的數(shù)據(jù)處理過程
1.提交隱私數(shù)據(jù)的安全過程 – 注冊
2.提交隱私數(shù)據(jù)的安全過程 – 登錄