使用3DES+Base64来加密传输iOS应用数据
本文转载至 http://www.erblah.com/post/objective-c/shi-yong-3des-base64lai-jia-mi-chuan-shu-iosying-yong-shu-ju
app与服务端进行数据传输有时需要加密,以免出现某知名新闻客户端密码只是md5一下就往服务器post的窘况...
ios加密的情况有三种:1.https 2.对称加密 3.非对称加密,因为种种原因,在一个应用中用到了3DES对称加密(据说AES更好),感觉挺方便的。
代码做了一些整理,提供了object和NSString+Category两种实现方式,同时附server端的加密和解密的代码(php实现),有需要的同学可以拿去用。
Github地址:ER3DESEncryptAndServer
使用说明
ER3DESEncryptAndServer
useage
- use ER3DESEncrypt
#import "ER3DESEncrypt.h"
...
NSString *orig = @"erblah.com", *encryptString, *decryptString, *key = @"I love you."; //default key: abcd12345678901234567890
ER3DESEncrypt *encryptDefaultKey = [[ER3DESEncrypt alloc] init]; encryptString = [encryptDefaultKey encryptString:orig];
decryptString = [encryptDefaultKey decryptString:encryptString];
NSLog(@"key:%@\n%@ --- %@ --- %@",encryptDefaultKey.encryptKey,
orig, encryptString, decryptString); //custom key
ER3DESEncrypt *encryptCustomKey = [[ER3DESEncrypt alloc] initWithKey:key]; encryptString = [encryptCustomKey encryptString:orig];
decryptString = [encryptCustomKey decryptString:encryptString];
NSLog(@"key:%@\n%@ --- %@ --- %@",encryptDefaultKey.encryptKey,
orig, encryptString, decryptString);
- use Category(NSString+Encrypt3DESandBase64)
#import "NSString+Encrypt3DESandBase64.h"
...
NSString *orig = @"erblah.com", *encryptString, *decryptString, *key = @"I love you.";
encryptString = [orig encryptStringWithKey:key];
decryptString = [encryptString decryptStringWithKey:key];
NSLog(@"key:%@\n%@ --- %@ --- %@", key, orig, encryptString, decryptString);
Server (php)
^_^ , open Crypt3Des.php ...
使用3DES+Base64来加密传输iOS应用数据的更多相关文章
- js中变量base64加密传输
首先对base64进行定义: var Base64 = { _keyStr : "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz01 ...
- Java 前端加密传输后端解密以及验证码功能
目录(?)[-] 加密解密 1 前端js加密概述 2 前后端加密解密 21 引用的js加密库 22 js加密解密 23 Java端加密解密PKCS5Padding与js的Pkcs7一致 验证码 1 概 ...
- base64位加密解密
1.base64位加密base64是用于传输8Bit字节代码,由上图的编码表可以知道,编码后的内容只包含这64个字符类型,所以称为base64编码 2.编码过程 : 首先将待编码的内容转换成8位二进制 ...
- RSA加密传输代码示例
RSA加密传输代码示例 涉及敏感数据的传输,双方最好约定使用加密解密.那RSA非对称加密就大有作为了.服务端可以保留自己的私钥,发给客户端对应的公钥.这样就可以互相加解密了.php中rsa加解密实现: ...
- 基于http协议的加密传输方案
最近公司需要通过公网与其它平台完成接口对接,但是基于开发时间和其它因素的考虑,本次对接无法采用https协议实现.既然不能用https协议,那就退而求其次采用http协议吧! 那么问题来了!在对接的过 ...
- webservice 采用SSL实现加密传输
本文转自:http://book.51cto.com/art/200906/129770.htm http://yeweiyun868.blog.163.com/blog/static/5637844 ...
- .net mvc 站点自带简易SSL加密传输 Word报告自动生成(例如 导出数据库结构) 微信小程序:动画(Animation) SignalR 设计理念(一) ASP.NET -- WebForm -- ViewState ASP.NET -- 一般处理程序ashx 常用到的一些js方法,记录一下 CryptoJS与C#AES加解密互转
.net mvc 站点自带简易SSL加密传输 因项目需要,传输数据需要加密,因此有了一些经验,现简易抽出来分享! 请求:前端cryptojs用rsa/aes 或 rsa/des加密,后端.net ...
- [转]webservice 采用SSL实现加密传输
本文转自:http://book.51cto.com/art/200906/129770.htm http://yeweiyun868.blog.163.com/blog/static/5637844 ...
- 如何为网站启用HTTPS加密传输协议
前言 当今时代对上网的安全性要求比以前更高,chrome和firefox也都大力支持网站使用HTTPS,苹果也从2017年开始在iOS 10系统中强制app使用HTTPS来传输数据,微信小程序也是要求 ...
随机推荐
- linux就该这么学之新手必须掌握的linux命令
常用的系统工作命令 1echo:用于在终端显示字符串或变量 格式为:“echo [字符串|变量]” 2date:用于显示/设置系统的时间或日期 格式为:“data[选项][+指定格式]” 3rebot ...
- SparkSQL的3种Join实现
引言 Join是SQL语句中的常用操作,良好的表结构能够将数据分散在不同的表中,使其符合某种范式,减少表冗余.更新容错等.而建立表和表之间关系的最佳方式就是Join操作. 对于Spark来说有3中Jo ...
- ubuntu 查看系统服务的列表
service --status-all
- azkaban2.5 具体配置以及使用方式
azkaban支持shell.java.mapreduce以及hive的工作流调度,在对这些不同类型任务调度之前须要配置所相应的插件:azkaban总体分为两部分azkaban executor se ...
- Android 在同一个手机上安装多个同样的apk,便于调试
Android studio 在同一个手机上安装多个同样的apk 原文地址:http://yj.itrydo.com/posts/iKJryXL9zkfSGRTZk 先看效果: 1.在我使用ecsli ...
- iOS学习(项目中遇到的错误1)
1.[AppModel copyWithZone:]: unrecognized selector sent to instance 0x7ffda9f4cf70 *** Terminating ap ...
- 关于ionic中几个问题
第一.每个页面的独立样式style标签不能写在ion-view外面,否则会出现路由问题,建议写在ion-content后面,例如下面的例子中,如果style但在ion-view中的话会出想路由问题,显 ...
- MySql 删除相同前缀的表名
SELECT CONCAT('drop table ', table_name, ';') FROM information_schema.tables WHERE table_name LIKE ' ...
- oracle字符串处理函数
1.LOWER(string) 将输入的字符串转换成小写: 2.UPPER(string) 将输入的字符串转换成大写: 3.INITCAP(string) 将输入的字符串单词的首字母转换成大写(如果不 ...
- c#利用委托传递函数参数(1)
本次旨在解决 同参不同名 的函数作为参数传递的情况 情景: 一下两个函数分别多次重复调用了两个同参不同名的函数(实际上总共有3个这样的函数),函数结构基本相同,只有调用的函数名不一样,显然可以整合在一 ...