本文转载至 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应用数据的更多相关文章

  1. js中变量base64加密传输

    首先对base64进行定义: var Base64 = { _keyStr : "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz01 ...

  2. Java 前端加密传输后端解密以及验证码功能

    目录(?)[-] 加密解密 1 前端js加密概述 2 前后端加密解密 21 引用的js加密库 22 js加密解密 23 Java端加密解密PKCS5Padding与js的Pkcs7一致 验证码 1 概 ...

  3. base64位加密解密

    1.base64位加密base64是用于传输8Bit字节代码,由上图的编码表可以知道,编码后的内容只包含这64个字符类型,所以称为base64编码 2.编码过程 : 首先将待编码的内容转换成8位二进制 ...

  4. RSA加密传输代码示例

    RSA加密传输代码示例 涉及敏感数据的传输,双方最好约定使用加密解密.那RSA非对称加密就大有作为了.服务端可以保留自己的私钥,发给客户端对应的公钥.这样就可以互相加解密了.php中rsa加解密实现: ...

  5. 基于http协议的加密传输方案

    最近公司需要通过公网与其它平台完成接口对接,但是基于开发时间和其它因素的考虑,本次对接无法采用https协议实现.既然不能用https协议,那就退而求其次采用http协议吧! 那么问题来了!在对接的过 ...

  6. webservice 采用SSL实现加密传输

    本文转自:http://book.51cto.com/art/200906/129770.htm http://yeweiyun868.blog.163.com/blog/static/5637844 ...

  7. .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 ...

  8. [转]webservice 采用SSL实现加密传输

    本文转自:http://book.51cto.com/art/200906/129770.htm http://yeweiyun868.blog.163.com/blog/static/5637844 ...

  9. 如何为网站启用HTTPS加密传输协议

    前言 当今时代对上网的安全性要求比以前更高,chrome和firefox也都大力支持网站使用HTTPS,苹果也从2017年开始在iOS 10系统中强制app使用HTTPS来传输数据,微信小程序也是要求 ...

随机推荐

  1. 安装php扩展模块参数memcache和memcached在php中的应用

    一, memcache和memcached的区别与关系统php要想去访问memcached就得需要memcache扩展,这个道理和php连接mysql一样. 你不安装memcache扩展就没法识别me ...

  2. squid 访问日志记录

    squid日志记录在squid.conf 也可记录.并且squid日志可以不记录静态项 在squid.conf 加入 (1)access_log /var/log/squid/access.log  ...

  3. IDETalk

    IDETalk插件下载地址 IDETalk是由JetBrains的工程师开发的一款代码级的协同工具,主要是为一个团队在进行相关项目开发时提供代码协同.当前IDETalk只能运行在IDEA下,你可以通过 ...

  4. CentOS7环境下SSH端口修改笔记

    CentOS7环境下SSH端口修改笔记 说明: CentOS7服务器环境,默认SSH端口为22,考虑到安全方面问题,欲修改端口为62231(机器内网IP为192.168.1.31) ssh配置文件和i ...

  5. PHP防止sql注入-JS注入

    一:为了网站数据安全,所有和数据库操作的相关参数必须做相关过滤,防止注入引起的网站中毒和数据泄漏 1.PHP自带效验函数 mysql_real_escape_string() 函数转义 SQL 语句中 ...

  6. Android中Activity的生命周期图

  7. Oracle 创建表空间、临时表空间、创建用户并指定表空间、授权,删除用户及表空间

    /* 说明:若已经存在相应的用户和表空间,则需要先删除相应的用户和表空间 然后再全部重新建立 */ --删除用户 drop user USERNAME cascade; --删除表空间 drop ta ...

  8. 【Lucene】Apache Lucene全文检索引擎架构之入门实战1

    Lucene是一套用于全文检索和搜寻的开源程式库,由Apache软件基金会支持和提供.Lucene提供了一个简单却强大的应用程式接口,能够做全文索引和搜寻.在Java开发环境里Lucene是一个成熟的 ...

  9. LBS 附近的人

    1 http://www.infoq.com/cn/articles/depth-study-of-Symfony2 2 http://lbsyun.baidu.com/

  10. 工作总结 获取html 标签 自定义属性值 根据html 自定义属性 获取 到标签

    FFID    HFID function getElementByAttr(tag, attr, value) { var aElements = document.getElementsByTag ...