美文网首页iOS加密整理
iOS小笔记 | DES加密

iOS小笔记 | DES加密

作者: Lol刀妹 | 来源:发表于2019-03-25 22:29 被阅读0次

    初次接触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加密统一性问题

    相关文章

      网友评论

        本文标题:iOS小笔记 | DES加密

        本文链接:https://www.haomeiwen.com/subject/ggsdvqtx.html