iOS加密2——Base64(苹果支持)10bet:

来源:http://www.chinese-glasses.com 作者:Web前端 人气:158 发布时间:2020-04-15
摘要:上面代码功能是解密一个经过des-ecb加密的字符串; base64 过程是可逆的. 可以反向解密. 所以一定要注意字符串是没有空格、用+代替空格。同url网址传递后,往往+被替换成了空格,如果

上面代码功能是解密一个经过des-ecb加密的字符串;

base64 过程是可逆的. 可以反向解密.

所以一定要注意字符串是没有空格、用+代替空格。同url网址传递后,往往+被替换成了空格,如果要解密url获取到的加密字符串,需要替换空格;

对一张图片进行 base64 解密

1> 将base64Data进行解密转成NSData类型的endata2> 将endata进行写入文件存放3>将endata转换成image

NSData *endata = [[NSData alloc] initWithBase64EncodedData:base64Data options:0]; [endata writeToFile:@"/Users/apple/Desktop/123.png2" atomically:YES]; UIImage *image = [UIImage imageWithData:endata]; NSLog(@"%@",image);

 /* desc base64 解密算法*/ private function fill8($str){ if(strlen($str) % 8){ $len = strlen($str) + 8 - strlen($str) % 8; $str = str_pad($str, $len, " "); } return $str; } public function DesBase64_Decrypt($encrypt_str, $key){ $encrypt_str = substr($encrypt_str, 8); $encrypt_str = $this-fill8($encrypt_str); $key = $this-fill8($key); $cipher = "DES-ECB"; $iv = ""; $original_plaintext = openssl_decrypt(base64_decode($encrypt_str), $cipher, $key ,OPENSSL_NO_PADDING, $iv, $tag); return base64_decode($original_plaintext); }
base64 可以对任意的文件进行加密.

本算法:des-ecb 加密得到一个base64字符串,然后再把它base64一次。

对这个字符串进行 base64 解密

1> 返回的是 base64 加密之后的字符串.

NSString *base64Str = [data base64EncodedStringWithOptions:0]; NSLog(@"base64Str: %@",base64Str); NSLog(@"%@ %ld base64Data: %@ %ld",data,data.length,base64Data,base64Data.length);

所以用 openssl_decrypt 解密之前,用base_decode字符串。

Base64编码可用于在HTTP环境下传递较长的标识信息。采用Base64编码不仅比较简短,同时也具有不可读性,即所编码的数据不会被人用肉眼所直接看到。在网络请求中,直接发送密码是不安全的!安全原则: 凡是涉及到私密信息的发送,都不能够发送明文,需要加密之后再发送.base64 : 将原来 8个 bit 为一个字节的数据 6个 bit 为一个单位处理. 导致 数据量会增大,增大 /6 = 1/3.不足的部分用 0 补齐.每两个0 就用一个 = 表示.

本文由10bet发布于Web前端,转载请注明出处:iOS加密2——Base64(苹果支持)10bet:

关键词:

频道精选

最火资讯