• [密码学] C++ 实现 AES128 加密算法


    概述

    清理邮箱的时候翻出来的。
    很久以前写的,理解加密算法用的,当时记得是还撸了两天晚上撸出来的代码,放上来留个纪念好啦。

    补上Tutorial,就当考古吧。

    写代码时候毕竟年轻,问题也不少,但现在这东西还能用!

    文件linkutf-8编码。

    编译

    使用gcc编译(g++也可以)即可,需要头文件为:

    #include <cstdio>
    #include <cstring>
    #include <cstdlib>
    

    系统里一般都有的,命令: gcc AES-128.cpp -o aes128

    加密操作

    先指定密钥,使用 -k 参数(理论上你可以使用任何大于16Byte的文件作为密钥,反正只读前128bit):

    先输入:

    ./aes128 -k key.txt
    

    然后使用 -e 选择需要加密的文件:

    ./aes128 -k key.txt -e file2E.data
    

    输出结果为result.aes

    解密操作

    还是用-k指定密钥文件,-d 用于解密

    ./aes128 -k key.txt -d file2D.data
    

    结果还是为result.aes

    字符串

    密钥指定都一样,使用-s参数:

    同时还会自动保存到result.aes文件中。

    解密字符串的话,还是用文件的方式解密哈。

    演示

    加解密演示视频:

    link

    其他问题可以问我。

    代码写其实不好,高手指正哈。

  • 相关阅读:
    使用IDEA打包出现“Cleaning up unclosed ZipFile for archive”错误
    Kafka读取本地文件作为生产者
    Redis连接池
    如果javaapi长时间消费不到数据
    Redis 持久化的两种方式
    kafka结合streaming的两种方式
    二分法查找
    shell脚本学习
    Md5Utils
    idea添加jar包
  • 原文地址:https://www.cnblogs.com/guoyunzhe/p/6203033.html
Copyright © 2020-2023  润新知