摘要:<span><span><?php class Crypt{ protected $key = ""; //公钥 private function keyED($txt,$encrypt_key) { $encrypt_key = md5($encrypt_key); $ctr=0; $tmp = ""; for ($i=0;$i<strlen($txt);$i++) { if ($ctr==strlen($encrypt_key)){ $ctr=0; } $tmp.= substr($txt,$i,1) ^ subs
阅读全文
摘要:openssl可以直接使用命令对文件件进行base64的编码与解码,利用openssl提供的API同样可以做到这一点。废话不多说,直接上代码了。需要注意的是通过base64编码后的字符每64个字节都会有一个换行符的存在。static int base64_encode(char *str,int str_len,char *encode,int encode_len){ BIO *bmem,*b64; BUF_MEM *bptr; b64=BIO_new(BIO_f_base64()); bmem=BIO_new(BIO_s_mem()); b64=BI...
阅读全文
摘要:http://www.cnblogs.com/aLittleBitCool/archive/2011/09/22/2185418.htmlopenssl是一个功能强大的工具包,它集成了众多密码算法及实用工具。我们即可以利用它提供的命令台工具生成密钥、证书来加密解密文件,也可以在利用其提供的API接口在代码中对传输信息进行加密。RSA是一个非对称加密算法。简单说来,非对称加密算法就是说加密解密一个文件需要有两个密钥,一个用来加密,为公钥,一个用来解密,为私钥。证书可以用来授权公钥的使用。今天小研究了下openssl的rsa加密,其中主要涉及利用公钥和密钥加解密文件,没有涉及对证书的操作。想要集体
阅读全文
摘要:http://blog.chukong-inc.com/index.php/2012/02/14/利用tea算法进行数据加密/TEA(Tiny Encryption Algorithm)是一种小型的对称加密解密算法,最初是由剑桥计算机实验室的 David Wheeler 和 Roger Needham 在 1994 年设计。采用128位密钥,以8字节(64位)对数据分块进行加密 / 解密。TEA特点是速度快、效率高,实现也非常简单。TEA出现后针对它的攻击也不断出现,在被发现存在缺陷后,TEA也发展出几个版本,分别是XTEA、Block TEA和XXTEA。XTEA 跟 TEA 使用了相同的简
阅读全文
摘要:果SDK自带的就有密码保护,使用方法很简单,如下:1、引入Security.frameWork框架。2、引入头文件:SFHKeychainUtils.h.3、存密码:[SFHFKeychainUtilsstoreUsername:@"dd"andPassword:@"aa"forServiceName:SERVICE_NAMEupdateExisting:1error:nil];[SFHFKeychainUtilsdeleteItemForUsername:@"dd"andServiceName:SERVICE_NAMEerror:n
阅读全文
摘要:I'm trying to useCommonCryptoto generate keys usingPBKDF2but I can't seem to importCommonCrypto/CommonKeyDerivation.h, I just errors that it is not found.Any ideas?edit: I should probably mention I have already added the security framework and I can import all of the otherCommonCryptoheaders
阅读全文
摘要:Apple Keychain Services offer a secure means to store sensitive information. Through the keychain, all the hardwork is managed for you to store and retrieve content. As powerful as the keychain services are, I was recently tinkering with some code to see if I could obfuscate content within an applic
阅读全文
摘要:Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一。Base64 主要不是加密,它主要的用途是把一些二进制数转成普通字符用于网络传输。由于一些二进制字符在传输协议中属于控制字符,不能直接传送需要转换一下。最常见的用途是作为电子邮件或WebService附件的传输编码#import<CommonCrypto/CommonCryptor.h>#import"GTMBase64.h"//Opensource,base64处理,就两个文件,自己从网上下载下吧+(NSString*)TripleDES:(NSString*)plainTextencrypt
阅读全文
摘要:想将sinaweibo demo project 加入到 Three20UI中,当用户点击thumb photo 相册的时候,一张放大的图片上加上sinaweibo图标。现在点击sinaweibo图标,可以出现 OAuth 及 XAuth 选择界面,再点击OAuth 时,Appcrashes.点击 XAuth 时,出现用户名及密码登录界面,输入后,程序同样崩溃。用的是下面的代码:- (void)clickActionItem {} in the three20UI as follows: - (void)clickActionItem { SinaWeiBoSDKDemoViewControl
阅读全文
摘要:Encryption.h文件 #import <Foundation/Foundation.h> @class NSString; @interface NSData (Encryption) - (NSData *)AES256EncryptWithKey:(NSString *)key; //加密- (NSData *)AES256DecryptWithKey:(NSString *)key; //解密- (NSString *)newStringInBase64FromData; //追加64编码+ (NSString*)base64encode:(NSS...
阅读全文
摘要:http://www.keakon.net/2010/01/04/SHA-1%20vs%20SHA-256最近想在GAE上实现一个验证码,但又不想用传统的键盘输入方式。一来是习惯用鼠标,切换到键盘很麻烦;二来是生成图片的成本很大,在GAE上还不能用C实现;三是在让机器难以识别的同时,也会造成用户的困惑。所以想到Google曾经提出的一个技术:提供一组选项,用鼠标将正确的选项拖动到指定位置,然后提交。在实现时我发现,如果不在客户端加密的话,这个提交过程是可以直接机器模拟的,也就造成验证码没有意义了。既然加密是必须的,那么接着就该选择和非对称加密了。然而思考了一番后发现,如果用户本身要伪装自己,那
阅读全文
摘要:感谢作者:http://www.keakon.net/2011/08/13/用CommonCrypto计算MD5和SHA编程时经常需要和MD5、SHA等hash算法打交道,搜了一下后我发现iOS SDK中自带了CommonCrypto,于是就无需自己实现或用第三方库了。首先来看MD5,它的输出结果是128位的,因此需要16个8位的char来存储。而输入参数我就直接用const char *了,反正NSString和NSData都能与它相互转换:#include <CommonCrypto/CommonDigest.h>static inline char hexChar(unsig
阅读全文
摘要:在你的 iOS App中 使用 OpenSSL 库 转发英文原文链接:http://www.x2on.de/2010/07/13/tutorial-iphone-app-with-compiled-openssl-1-0-0a-library/下文有错误 参照有风险:需要修改 输入命令行的部分 建议用英文原版里的!!!在你的 iOS App中 使用 OpenSSL 库——译自x2on的“Tutorial: iPhone Appwith compiled OpenSSL 1.0.0a Library”原文地址:http://www.x2on.de/2010/07/13/tutorial-ipho
阅读全文
摘要:+(NSString*)HloveyRC4:(NSString*)aInput key:(NSString*)aKey{ NSMutableArray *iS = [[NSMutableArray alloc] initWithCapacity:256]; NSMutableArray *iK = [[NSMutableArray alloc] initWithCapacity:256]; for (int i= 0; i<256; i++) { [iS addObject:[NSNumber numberWithInt:i]]; } int ...
阅读全文
摘要:ios des 加/解密(with base64)#include <CommonCrypto/CommonCryptor.h>+ (NSString*)Encrypte:(NSString*)src key:(NSString*)key{ NSString* retStr = nil; NSData* srcData = [src dataUsingEncoding:NSUTF8StringEncoding]; size_t dataOutAvilable = ([srcData length] + kCCBlockSize3DES) & ~(kCCBlockSize3D
阅读全文
摘要:http://blog.csdn.net/tangaowen/article/details/7370475iphone使用keychain来存取用户名和密码 以下文字转载自:http://blog.csdn.net/bl1988530/article/details/6887946,向原作者表示感谢和敬意。 iOS的keychain服务提供了一种安全的保存私密信息(密码,序列号,证书等)的方式。每个ios程序都有一个独立的keychain存储。从ios 3.0开始,跨程序分享keychain变得可行。下面就使用keychain来实现存取用户名和密码。苹果已经有现成的类封装...
阅读全文
摘要:+(NSString*) md5:(NSString*) str{ const char *cStr = [str UTF8String]; unsigned char result[CC_MD5_DIGEST_LENGTH]; CC_MD5( cStr, strlen(cStr), result ); NSMutableString *hash = [NSMutableString string]; for(int i=0;i<CC_MD5_DIGEST_LENGTH;i++) { [hash appendFormat...
阅读全文
摘要:苹果SDK自带的就有密码保护,使用方法很简单,如下:1、引入Security.frameWork框架。2、引入头文件:SFHKeychainUtils.h.3、存密码:[SFHFKeychainUtilsstoreUsername:@"dd"andPassword:@"aa"forServiceName:SERVICE_NAMEupdateExisting:1error:nil];[SFHFKeychainUtilsdeleteItemForUsername:@"dd"andServiceName:SERVICE_NAMEerror:
阅读全文
摘要:之前翻译过一篇OAuth认证协议原理分析及使用方法,虽然 OAuth2还没有正式发布,但是国内外的OAuth2的采用情况几乎要完全替代掉OAuth1.1了。像淘宝、腾讯、人人网、百度开放平台就已经采用Oauth2,新浪微博也发来邮件说是要很快上马OAuth2,彻底替换掉OAuth1.1。目前OAuth2到了v20草稿阶段,最新的版本是 2011年7月25号发布的,协议变化还是很快的,所以看到国内的一些已经实现的实例,再比照官方的 oauth2,会有些出入的。为何要 OAUTH2来替换OAUTH1.1?一、OAuth2大大简化了认证流程,OAuth1版本,我都感觉有些流程设计不是为安全性而存在,
阅读全文
摘要:新:oauth第二代oauth2开放认证协议原理及案例分析twitter或豆瓣用户一定会发现,有时候,在别的网站,点登录后转到 twitter登录,之后转回原网站,你会发现你已经登录此网站了,比如像feedtwitterrss2twitter推特中文圈(这个目前好像有点问题转回来的时候是个错误地址)这种网站就是这个效果。其实这都是拜 OAuth所赐。OAUTH是什么?OAuth是一个开放的认证协议,让你可以在Web或桌面程序中使用简单而标准的,安全的API认证。OAUTH有什么用?为什么要使用OAUTH?网络开放是一个不变的趋势,那么不可避免的会有各种网络服务间分享内容的需要。举个我们身边国内
阅读全文