密码学

2018-02-26  本文已影响19人  geekAppke
ssh :secure shell
加密:
    1. 对称加密 (加密密钥与解密密钥相同)
        des 、aes
    2. 非对称加密(加密密钥与解密密钥不同)
        RSA :公钥、私钥 
数字摘要:
    md5 \sha1

密码学

Base64编码,将任意二进制数据进行编码,有65中字符组成的文本(0-9、a-z、A-Z、+/=)

/** 字符串,进行base64编码 */
- (NSString *)base64Encode:(NSString *)string
{
    // 1.将字符串转成 二进制
    NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];
    // 2.返回base64编码
    return [data base64EncodedStringWithOptions:0];
}

/** 给我一个base64编码,解码 */
- (NSString *)base64Decode:(NSString *)string
{
    // 1.将base64编码后的字符串,转换成 二进制
    NSData *data = [[NSData alloc] initWithBase64EncodedString:string options:0];
    // 2.返回字符串
    return [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
}
----------------------------------------------
NSLog(@"%@", [self base64Encode:@"haha"]);
// aGFoYQ==
NSLog(@"%@", [self base64Decode:@"aGFoYQ=="]);
// haha

位运算:与、或、非、异或(简单的加密)

密码学

上世纪70年代现代密码学——非对称加密算法 RSA(网络)

对称加密(本地)


哈希(散列)函数

// 直接md5太简单
//    pwd = pwd.md5String;
//    pwd = [pwd stringByAppendingString:salt].md5String;
pwd = [pwd hmacSHA1StringWithKey:@"helen"];
    
// 登陆
[self sendUserId:uid withPwd:pwd];

哈希(散列)函数应用

上一篇 下一篇

猜你喜欢

热点阅读