密码库LibTomCrypt学习记录——(1.2)分组密码算法——使用前注册算法register_cipher

密码库LibTomCrypt学习记录——(1.2)分组密码算法——使用前注册算法register_cipher在使用某个密码算法前需要先注册 然后才能使用 密码算法索引值的获取步骤步骤 1 利用 intregister cipher conststructl cipher descriptor cipher 注册算法 步骤 2 利用 intfind cipher constchar name 获取已注册的密码算法索引值 步骤 3 使用完毕后利用 intunregiste ciphe

在使用某个密码算法前需要先注册,然后才能使用。密码算法索引值的获取步骤

  1. 步骤1. 利用int register_cipher(const struct ltc_cipher_descriptor *cipher)注册算法
  2. 步骤2. 利用int find_cipher(const char *name)获取已注册的密码算法索引值
  3. 步骤3. 使用完毕后利用int unregister_cipher(const struct ltc_cipher_descriptor *cipher)注销密码算法

函数find_cipher(const char *name)中的name对应ltc_cipher_descriptor中的name。

程序中可以注册以下密码算法(struct ltc_cipher_descriptor)

  register_cipher (&aes_desc);

  register_cipher (&blowfish_desc);

  register_cipher (&xtea_desc);

  register_cipher (&rc5_desc);

  register_cipher (&rc6_desc);

  register_cipher (&saferp_desc);

  register_cipher (&twofish_desc);

  register_cipher (&safer_k64_desc);

  register_cipher (&safer_sk64_desc);

  register_cipher (&safer_k128_desc);

  register_cipher (&safer_sk128_desc);

  register_cipher (&rc2_desc);

  register_cipher (&des_desc);

  register_cipher (&des3_desc);

  register_cipher (&cast5_desc);

  register_cipher (&noekeon_desc);

  register_cipher (&skipjack_desc);

  register_cipher (&khazad_desc);

  register_cipher (&anubis_desc);

以下是一个简单的使用AES-ECB加解密的概要过程。

     if ( register_cipher (&aes_desc) != CRYPT_OK )// 注册aes

return CRYPT_INVALID_CIPHER;

    

if ((idx = find_cipher(“aes”)) == -1) // 找到aes索引号,在后面使用

return CRYPT_NOP;

     if ((err = ecb_start(idx, key, keylen, 0, &ctr)) != CRYPT_OK)//ECB初始化

return err;

     if ((err = ecb_encrypt( pt, ct, msglen, &ctr)) != CRYPT_OK) //ECB加密

return err;

if ((err = ecb_decrypt( ct, pt, msglen, &ctr)) != CRYPT_OK) //ECB解密

return err;   

ecb_done(&ctr); //ECB反初始化

unregister_cipher(&aes_desc); //注销aes

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/216717.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 上午11:14
下一篇 2026年3月18日 上午11:14


相关推荐

  • 计算机组成原理实验移位运算,移位运算实验

    计算机组成原理实验移位运算,移位运算实验《移位运算实验》由会员分享,可在线阅读,更多相关《移位运算实验(4页珍藏版)》请在人人文库网上搜索。1、计算机组成原理实验报告姓名吕翠学号专业计算机科学与技术班级08级师范汉班联系电话Emailqq.com同组实验者梁瑞实验室名称计算机组成原理实验室实验日期2010年10月19日课程名称计算机组成原理实验序号二实验项目移位运算实验主讲教师侯宏霞辅导教师侯…

    2022年7月13日
    15
  • QMap类说明[通俗易懂]

    QMap类说明[通俗易懂]QMap是一个模板类,提供了一个红黑树结构的查找字典。注:红黑树结构是自平衡二叉树QMap是一个QT常用的容器类,它存储键值队,并且可以很快的根据键查找值。QMap和QHash提供很类似的功能,他们的区别如下:1. QHash的查找性能更好;2.在遍历QHash时,里面是已经按字母排序好的,但是对于QMap,里面的东西都是按键分类的。3.QHash的键类型必须提供一

    2022年5月29日
    46
  • Servlet和JSP的交互方式[通俗易懂]

    Servlet和JSP的交互方式[通俗易懂]文章目录Servlet和JSP的交互方式Servlet:jsp:1.表单:2.超链接超链接3.forward:获取参数值request.getParameter(“id”)处理乱码newString(request.getParameter(“name”).getBytes(“ISO8859_1″),”UTF-8”)Servlet和JSP的交互方式Servlet:1.request.getRequestDispatcher(“url”).forward(requsest,response);这个是

    2022年6月22日
    27
  • CPLD和FPGA的区别(转)[通俗易懂]

    CPLD和FPGA的区别(转)[通俗易懂]原文:http://tvb2058.spaces.eepw.com.cn/articles/article/item/15358本文重点从CPLD的结构来讲的,从而说明其与FPGA的区别——————————————————————————————————-…

    2022年5月29日
    46
  • 区块链P2P网络协议演进过程[通俗易懂]

    区块链P2P网络协议演进过程[通俗易懂]区块链是以加密机制、储存机制、共识机制等多种技术组成的分布式系统,可以在无中心服务器的情况下实现相互信任的点对点交易功能。区块链最大的特点是去中心化和分布式,区块链共识机制使得参与节点共同为系统提供服务,实现中心化系统中类似金融中介机构的功能。共识机制是网络大部分节点在约定时间段内对交易状态达成相同的确认,其中共识性通过工作量证明(POW)、权益证明(POS)、实用拜占庭容错(PBFT)等多种共识算法实现。而一致性则要求大部分节点在约定时间段内保持数据内容一致,从而利用共识算法实现共识。传统中心化网络系统需

    2022年10月8日
    6
  • Redis设计与实现学习总结

    Redis设计与实现学习总结Redis 设计与实现学习总结本文主要对 Redis 的设计和实现原理做了一个介绍很总结 有些东西我也介绍的不是很详细准确 尽量在自己的理解范围内把一些知识点和关键性技术做一个描述 如有错误 还望见谅 欢迎指出 这篇文章主要还是参考我之前的技术专栏总结而来的 欢迎查看 重新学习 Redishttps blog csdn net column details 21877 html 使用

    2026年3月19日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号