算法
iChenfy
这个作者很懒,什么都没留下…
展开
-
字数统计
- (int)countWord:(NSString*)s { int i,n=[s length],l=0,a=0,b=0; unichar c; for(i=0;i<n;i++){ c=[s characterAtIndex:i]; if(isblank(c)){ b++; }else if(isas原创 2017-03-15 11:31:34 · 2038 阅读 · 0 评论 -
iOS 链式编程(Masonry)
相信大多数同学都是用过Masonry框架进行布局,他是一个UI布局约束框架;1、首先Masonry主要用到了Block和链式编程,由于每个View都是可以通过自身实例直接调用,因此可以想到Masonry首先创建了UIView的一个分类“View+MASAdditions.h”;2、然后创建了一个“MASConstraintMaker.h”来管理相关的约束;3、约原创 2017-11-27 21:18:41 · 386 阅读 · 0 评论 -
ios clang 查看runtime的 c++编码
如何使用clang -rewrite-objc指令查看c++源码?由于直接使用-rewrite-objc xxx.m是会产生异常的,如果想正常使用可以使用如下指令://原始指令clang -x objective-c -rewrite-objc -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulato原创 2017-12-06 20:14:04 · 544 阅读 · 0 评论 -
使用mac openssl 生成证书
第一步Openssl产生私钥 RSA第二步生成公钥第三步创建证书签名请求CSR文件第四步生成证书其它第一步:Openssl产生私钥 (RSA) //1、生成私钥 $ openssl genrsa -aes128 -out fd.key 2048 Generating RSA private key, 2048 bit long modulus ....+++ ......原创 2017-12-06 19:37:27 · 6610 阅读 · 1 评论 -
GPUImage 源码集成到项目中
我们开发中会用到一些静态库,自己的或者别人的;如果别人的没有源码的,直接使用.a库即可;如果是别人的库附带源码或者自己写的.a库,如果每次都打包编译替换.a库会显得比较麻烦,因此,我们可以将源码直接引入到工程这样操作起来方便了很多;参考GPUImage集成: http://www.jianshu.com/p/f7076dfd8b62原创 2017-12-22 10:53:26 · 369 阅读 · 0 评论 -
iOS 对称加解密之AES
本篇将要说的是iPhone系统自带的对称加解密函数;一引入加密头文件二实现AES加密三实现AES解密四总结对称加解密: i. DES 数据加密标准 ii. 3DES 同DES,只是采用了3个key进行了多次运算 iii. AES 高级密码标准 DES是早期的数据加密标准,AES是高级加密标准,而3DES是DES向AES转型的中间过渡产物;下面就说下AES: 首先,原创 2017-12-04 16:17:49 · 886 阅读 · 0 评论 -
iOS 摘要的生成
有时我们为了项目数据保密,我们会做一些摘要设计,接下来说下苹果自带的一些摘要算法:md5、sha1、sha256等。我们自己编写摘要的实现,这样就可以避免第三方库的导入;如下代码都是在NSString类的扩展内实现的;一md5的实现二sha1实现三HMAC实现四辅助函数一、md5的实现- (NSString *)md5String { //方式一 const char *dat原创 2017-12-04 13:58:29 · 680 阅读 · 0 评论 -
openssl 根据证书生成p7b证书链
第一步第二步总结我们项目中有时可能因为需要因此要校验持有证书是否是合法证书,因此需要校验当前证书的证书链;但是,可能有时由于其它原因没有证书链,下面介绍说明如何根据证书链的证书生成p7b证书链;首先,假设我们有一级证书 root01.cer、二级证书root02.cer 及需要校验的证书 user.cer第一步:如果制作证书链我们需要将der编码证书转换为pem,我们可以利用openssl指令原创 2017-12-02 22:44:49 · 5539 阅读 · 0 评论 -
ios 代码耗时统计
采用Block进行代码耗时比较方便,代码如下:#import CGFloat BNRTimeBlock (void (^block)(void)) { mach_timebase_info_data_t info; if (mach_timebase_info(&info) != KERN_SUCCESS) return -1.0;原创 2017-09-29 14:19:53 · 826 阅读 · 0 评论 -
ios 数字加字母正则表达式
数字加字母正则 NSString *regex = @"\\d{0,}([a-z]{1,}\\d{1,}){1,}[a-z]{0,}"; regex = @"((?=.*\\d)(?=.*[a-zA-Z]))[\\da-zA-Z]*"; NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHE原创 2017-07-28 17:43:34 · 2143 阅读 · 0 评论 -
结构体与NSData的转换
一、结构体typedef struct { UInt16 tag; UInt16 length;}Info;二、相互转换 Info info; info.tag = 0x3e01; info.length = 123; NSData *dataRes = [NSData dataWithBytes:&info length:sizeof(info)];原创 2017-06-05 17:39:34 · 1729 阅读 · 0 评论 -
算法
包括拉格朗日,牛顿插值,高斯,龙贝格,牛顿迭代,牛顿-科特斯,雅克比,秦九昭,幂法,高斯塞德尔 。都是经典的数学算法,希望能开托您的思路。转自kunli.info1.拉格朗日插值多项式 ,用于离散数据的拟合C/C++ code#include #include #include float lagrange(float *x,float *y,float xx,in转载 2017-03-20 14:22:43 · 322 阅读 · 0 评论 -
国产密码安全算法总结
为了保障商用密码安全,国家商用密码管理办公室制定了一系列密码标准,包括 SSF33、SM1(SCB2)、SM2、SM3、SM4、SM7、SM9、祖冲之密码算法等等。1、SM1算法。该算法是由国家密码管理局编制的一种商用密码分组标准对称算法,分组长度和密钥长度均为128位,算法的安全保密强度及相关软硬件实现性能与AES算法相当,目前该算法尚未公开,仅以IP核的形式存在于芯片中。2、SM2算法。该算法原创 2017-03-09 17:41:21 · 59701 阅读 · 2 评论 -
非对称加解密
非对称加密主要算法有:RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)等;非对称加密拥有两个密钥:公开密钥(publickey)和私有密钥(privatekey)。通常使用的是: 1、公钥加密,私钥解密;(保证数据的安全) 2、私钥签名,公钥验签; (防篡改)非对称加密执行的步骤顺序: 1、先获取KeyPair对象; 2、获取字符串的公钥/私钥原创 2017-03-09 17:18:32 · 1060 阅读 · 0 评论 -
对称加解密算法
对称加解密算法分为:分组加密算法、流加密算法; 目前国际上使用的对称加密算法主要有: 另外,还有我国自主研发的已经公布的SM4算法; 名称 英文 DES (Data Encryption Standard) 3DES (Triple DES) AES (Advanced Encryption Standard)1. DES DES算法全称为Data Encr原创 2017-03-09 17:05:50 · 1929 阅读 · 0 评论 -
二分查找
一、函数的调用- (void)clicked { NSArray *arrayNumbers = @[@-4,@-2,@4,@6,@9,@14,@23,@100]; NSInteger res = [self searchValue:arrayNumbers num:15]; NSInteger ress = [self searchValueIndex:arrayNumbe原创 2017-01-13 17:10:25 · 356 阅读 · 0 评论