zoukankan      html  css  js  c++  java
  • openssl des ECB

    #include <iostream>
    extern "C"
    {
    #include <libavutil/des.h>
    }
    #include <openssl/include/win10/openssl/des.h>
    
    
    
    
    
    
    
    int main(int argc, char *argv[])
    {
    
    
        printf("=============
    ");
    
    
        const char *keystring = "this is my key";
        DES_cblock key;
        DES_key_schedule key_schedule;
    
        //生成一个 key  
        DES_string_to_key(keystring, &key);
        if (DES_set_key_checked(&key, &key_schedule) != 0) {
            printf("convert to key_schedule failed.
    ");
            return -1;
        }
    
        //需要加密的字符串  
        unsigned char input[] = "this is a text being encrypted by openssl";
        size_t len = (sizeof(input) + 7) / 8 * 8;
        unsigned char *output = (unsigned char *)malloc(len + 1);
        //IV  
        DES_cblock ivec;
    
        //IV设置为0x0000000000000000  
        memset((char*)&ivec, 0, sizeof(ivec));
    
        //加密  
        DES_ncbc_encrypt(input, output, sizeof(input), &key_schedule, &ivec, DES_ENCRYPT);
    
        //输出加密以后的内容  
        for (int i = 0; i < len; ++i)
            printf("%02x", output[i]);
        printf("
    ");
    
        memset((char*)&ivec, 0, sizeof(ivec));
    
        //memset((char*)&input, 0, sizeof(input));
        unsigned char ii[256] = { 0 };
    
        //解密  
        DES_ncbc_encrypt(output, ii, len, &key_schedule, &ivec, 0);
    
        printf("%s
    ", ii);
    
        free(output);
    
    
    
    
    
    
        return 0;
    }
  • 相关阅读:
    Spring Boot中Bean对象的核心特性及依赖注入分析
    Spring Boot快速入门
    throw和throws
    Spring框架中的一些常见注释
    关于maven的介绍并创建一个简单的maven工程
    luffyapi~settings
    爬虫~requests
    爬虫~scrapy1
    爬虫~scrapy
    爬虫~选择器
  • 原文地址:https://www.cnblogs.com/YZFHKMS-X/p/13983140.html
Copyright © 2011-2022 走看看