首页 > 其他分享 >CH5XX AES加密

CH5XX AES加密

时间:2024-12-30 21:53:15浏览次数:1  
标签:AES 加密 16 uint8 CH5XX key PRINT buf

1.CH5XX支持的是128bit AES加密(ECB)。

2.加解密一共就两个函数,一个加密,一个解密,内容如下:

/**
 * @brief   Encrypt data
 *
 * @param   key - key                      秘匙
 * @param   plaintextData - original data  原始数据
 * @param   encryptData - encrypted data   加密的数据
 *
 * @return  Command Status.
 */
extern bStatus_t LL_Encrypt( uint8_t *key, uint8_t *plaintextData, uint8_t *encryptData );

/**
 * @brief   Decrypt data
 *
 * @param   key - key                      秘匙
 * @param   plaintextData - original data  原始数据
 * @param   decryptData - decrypted data   解密的数据
 *
 * @return  Command Status.
 */
extern bStatus_t LL_Decrypt( uint8_t *key, uint8_t *plaintextData, uint8_t *decryptData );

3.实操代码如下:

void aes128_test(void)
{
    int i = 0;
    // 加密秘钥 16个字节也就是128 bit
    uint8_t key[16] = {0X00,0X11,0X22,0X33,0X44,0X55,0X66,0X77,0X88,0X99,0XAA,0XBB,0XCC,0XDD,0XEE,0XFF};

    // 需要加密的数据(保证16个字节,不够的自己填充)
    uint8_t source_buf[16] = {0X00,0X01,0X02,0X03,0X04,0X05,0X06,0X07,0X08,0X09,0X0A,0X0B,0X0C,0X0D,0X0E,0X0F};

    // 加密后数据存放区
    uint8_t encrypted_buf[16];

    // 解密后数据存放区
    uint8_t deccrypted_buf[16];

    // 开始加密,加密后的数据存放到encrypted_buf,
    LL_Encrypt( key, source_buf, encrypted_buf );

    // 开始解密,将解密后的数据存到deccrypted_buf,ch579 11us
    LL_Decrypt( key, encrypted_buf, deccrypted_buf );


    //打印原始数据
    PRINT("source:");
    for(i = 0;i < 16;i++) {
        PRINT("0x%02x ",source_buf[i]);
    }
    PRINT("\r\n");
    //打印加密后的数据
    PRINT("encrypte:");
    for(i = 0;i < 16;i++) {
        PRINT("0x%02x ",encrypted_buf[i]);
    }
    PRINT("\r\n");
    //打印解密后的数据
    PRINT("deccrypte:");
    for(i = 0;i < 16;i++) {
        PRINT("0x%02x ",deccrypted_buf[i]);
    }
    PRINT("\r\n");
}

标签:AES,加密,16,uint8,CH5XX,key,PRINT,buf
From: https://www.cnblogs.com/risc5-ble/p/18642540

相关文章

  • 数据保护三剑客:编码、加密与令牌化
    ......
  • h5播放 加密m3u8文件
    h5播放加密m3u8文件1.opensslrand16>enc.key 2. opensslrand16-hex #获取字符串,key_info.txt文件用3.新建文件:key_info.txt http://127.0.0.1:8080/enc.keyenc.keyd7e6e8dc49a8eddc07ee028643a7a693启动web目录python3-mhttp.server8080   生成文......
  • 常见加密方式:对称加密,非对称加密和哈希算法
    前言长度位数,字符规律数据加密是一种保护数据安全的技术,通过将数据明文转换为不易被未授权的人理解的形式密文,防止数据泄露、串改和滥用。对称加密加密和解密使用同一密钥,加解密速度快,适合加密大量数据。但密钥需要安全地存储和传输,否则容易窃取,破坏数据地保密性。DES明......
  • 若依(spring-cloud)修改登陆密码加密算法
    文章目录前言一、解决办法二、解决过程1为啥要改加密算法2找不到校验代码总结前言若依是一套快速集成各种中间件的配套Java后端框架,本文旨在描述修改其登陆的加密算法。文章的大前提是后端框架是若依哈,不是的话可以跳过了~!文章创作原因:系统针对登陆密码是密文......
  • Qt5.14.2 编译QtCipherSqlitePlugin ,_mm_aesimc_si128 (__m128i __X)报错解决
    1.在相同的cpu,相同版本的Qt5.14.2不同电脑下,编译由devbean/QtCipherSqlitePlugin作者处下载的源码。未修改任何东西的情况下,同事电脑一键即可编译成功!而本人则是尝试了很多次都无法编译成功!总是报错内联失败,目标特定选项不匹配等问题! 2.尝试多次后,在sqlitecipher.pro文件添......
  • 计算机毕业设计-基于Python+Django的信息加密解密网站系统项目开发实战(附源码+论文)
    大家好!我是程序员一帆,感谢您阅读本文,欢迎一键三连哦。......
  • Cloudera集群运维-关于kerberos加密算法的配置梳理
    [0]关于本文在为集群配置Kerberos时,很容易被加密算法相关的错误搞得头晕目眩,这里有必要梳理一下有关配置。直接先总结ClouderaManager中的Kerberos加密类型:影响客户端Cloudera Manager生产Keytab时使用的加密算法/etc/krb5.conf中的permitted_enctypes,default_tkt_encty......
  • “加密内容以保护数据”不可选,怎么办?
    Windows系统自带的文件加密功能,大家应该都很熟悉,但是在我们自己实际操作的时候有些朋友会发选自己电脑上的加密内容以便保护数据是灰色的,根本没办法勾选。首先很重要的一点,Windows加密功能在专业版里可以使用,其他版本不能,所以,并不是win10的问题,有可能是版本的问题。其次,其实......
  • C语言实现DES加密 配完整源代码
    示例如下:二进制明文:0000000100100011010001010110011110001001101010111100110111101111二进制密文:0001001100110100010101110111100110011011101111001101111111110001源代码如下:#include<stdio.h>voidoutput(chardata[],intnumber);voidchange(intimax,intjm......
  • 伪加密
    伪加密两个模块都有全局标志位第一个模块frFlags第二个模块deFlags504B文件头第一个模块的67第二个模块910文件头标记:全局方式位标记目录中文件的文件头标记:全局方式位标记未加密文件头中的全局方式位标记为0000目录中源文件的全局方式位标记为0000伪加......