iOS加密整理

iOS小笔记 | DES加密

2019-03-25  本文已影响0人  Lol刀妹

初次接触DES加密的人可能会懵逼,包括我,懵逼的主要原因是不知道有哪些参数。以前接触过MD5加密,很简单的一种加密方式,网上随便一搜,封装好的代码一大堆,随便copy一个都能用。虽然DES加密网上现成的代码也不少,但是由于其参数比较多,你若不了解其参数,别人提供的代码你将很难借鉴。

那如何快速了解DES加密所需参数?

很简单,网上随便找一个在线DES加密网站,如:http://tool.chacuo.net/cryptdes

你会看到:

除了需要待加密文本,还需要:

  1. 加密模式
  2. 填充
  3. 密码(也就是所谓的key)
  4. 偏移量
  5. 输出
  6. 字符集

这些参数的具体值到底该怎么填?当然是问你们后台,或者直接把那个在线加密网站给他,让他加密一次。

OK,到这里你已经清楚DES加密需要哪些参数了,后面的就很简单了。

提供一个我用的:

/** DES加密 */
+ (NSString *)desEncryptWithString:(NSString *)plainText {
    NSString *ciphertext = nil;
    NSData *textData = [plainText dataUsingEncoding:NSUTF8StringEncoding];
    NSUInteger dataLength = [textData length];
    unsigned char buffer[1024 * 5];
    memset(buffer, 0, sizeof(char));
    size_t numBytesEncrypted = 0;
    CCCryptorStatus cryptStatus = CCCrypt(kCCEncrypt, kCCAlgorithmDES,
                                          kCCOptionPKCS7Padding | kCCOptionECBMode,
                                          [@"你们的key" UTF8String],
                                          kCCKeySizeDES,
                                           [@"你们的偏移量" UTF8String],
                                          [textData bytes], dataLength,
                                          buffer, 1024,
                                          &numBytesEncrypted);
    if (cryptStatus == kCCSuccess) {
        NSData *data = [NSData dataWithBytes:buffer length:(NSUInteger)numBytesEncrypted];
        ciphertext = [data base64EncodedStringWithOptions:0];
    }
    return ciphertext;
}

如果想对参数有更多的了解,建议再看一下这篇文章:

(iOS)Base64加密和DES加密、以及JAVA和iOS中DES加密统一性问题

上一篇下一篇

猜你喜欢

热点阅读