如何确保明文和密文的长度是一致的

加密之后会变大的问题

  做过加密的人都应该有“加密之后文件会变大”的经验。变大就变大吧,对于日常使用和APP开发或者服务端开发而言,大个几k字节是无所谓的,但是如果是使用RF(射频)通信,那么大几个字节就会导致通信失败率的增加,所以对于这样的场景,你就需要确保密文和明文一样长,最好是还能短一点。
  由于短一点是压缩算法的功劳,和加密算法本身没有关系,我们这里不做分析,今天我们以openssl的命令行工具为例来学习如何确保密文长度等于明文长度。

为啥密文会比明文长

  为啥加密之后就会边长呢?为了更安全!那么为了更安全长到哪里了?
    1. 长在填充;
    2. 长在salt;
  填充主要是为了解决分组加密,明文长度不是分组的整数倍的问题,为了简化填充规则,如果明文是分组的倍数,就填充一个整的分组。
如何确保明文和密文的长度是一致的
上图就是一个明文是128bits的aes-128-cbc的加密样例,填充了整整一个128bits的填充块。
  salt是作为秘钥和IV生成的一个随机因子,为了解决相同的明文和秘钥生成相同的密文的问题,由于salt必须参与到运算中,所以salt通常是以明文的形式拼接在明文的最前面,salt通常是16个字节的长度,前8字节是个固定的magic数,后8个字节是随机数,这样有salt的密文至少会增加一个长度是16个字节的明文头部信息。
如何确保明文和密文的长度是一致的
上图就是一个有salt的,明文是一个字节的密文是16+1个字节的样例输出。

如何控制让密文和明文长度一致呢

  既然增长是由于填充和salt导致的,那么要保证一样长,那就需要去掉填充和salt,当然去掉填充的前提需要明文的长度是分组的倍数,要不然加密会报错的。
如何确保明文和密文的长度是一致的
上图是一个nopad和nosalt的截图,我们在看一个对比图,如下:
如何确保明文和密文的长度是一致的

特别提醒小心-a的参数

  -a在参数在openssl里面是对加密或者解密结果的base64的处理,如果是加密就是base64编码,反之是解码。base64会把没3个字节编码为4个字节的科输入字符,如果不小心用到这个选项,你会发现密文长度填充了不少。
  重要的事情说三遍,用了-a会变长!用了-a会变长!用了-a会变长!

进一步的学习资料推荐

  使用openssl做AES的加密
  使用openssl做SSL/TLS/HTTPS的实验

原创文章,作者:LWEAL,如若转载,请注明出处:https://www.wangzhanshi.com/n/16469.html

(0)
LWEAL的头像LWEAL
上一篇 2025年1月2日 12:39:16
下一篇 2025年1月2日 12:39:18

相关推荐

  • Python无法验证ssl证书的解决方法

    Python无法验证ssl证书?解决方法如下: import requests from bs4 import BeautifulSoup …

    ssl证书 2025年1月2日
  • 个人SSL证书是什么

    SSL证书通过互联网上的身份验证,来标识和证明通信双方身份,在当代信息时代中为大多数商务人士熟知和使用,个人SSL证书给予个人网站更好的服务与支持。 SSL证书的优点、SSL证书的…

    2025年1月2日
  • ssl版本有哪些,如何查看ssl证书详情

    ssl证书是数字证书的一种,这种证书是遵循ssl协议的,一般都是由受信任的数字证书颁发机构颁发的。一般情况下,这种证书在颁发的时候都是需要验证身份,通过之后就可以颁发。该证书一般是…

    2025年1月2日
  • php开启openssl的方法是怎样的

    本教程操作环境:windows7系统、PHP7.1版,DELL G3电脑 PHP 在进入7.x 时代后,默认就不再附带 mcrypt 扩展,mcrypt 将被 openssl_* …

    ssl证书 2025年1月2日
  • 怎么部署国密openssl证书

    HTTPS加密也需要“备胎”计划 目前,我国互联网基础通信安全完全依赖于国外CA签发的RSA SSL证书,如果出现吊销或断供等极端情况,电子政务系统、银行支付系统、移动支付系统、电…

    2025年1月2日
  • ssl证书价格贵吗?有什么申请要求

    ssl证书价格贵吗?有什么申请要求?很多人都不太了解,今天小编为了让大家更加了解ssl证书,所以给大家总结了以下内容,一起往下看吧。 因为,ssl证书的安全性高,所以,如今有越来越…

    2025年1月2日
  • ssl证书公司应该如何选择

    网站的信息安全是很重要的,因为网站当中有各种用户的信息,为了防止用户重要的信息被泄露出去,就需要注意将网站的安全保障提高。ssl证书就是一种安全证书,这种证书在保障网站信息安全有一…

    2025年1月2日
  • 微信小程序要如何选择SSL证书类型

    微信9月21日晚宣布“微信小程序开始内测”,并于11月3日宣布开始公测,官方需求文档要求后台使用HTTPS请求进行网络通信,不满足条件的域名和协议无法请求。因此开发者应先准备好配置…

    2025年1月2日
  • 查看SSL证书有效期的方法有哪些

    SSL证书过期之后,浏览器会对访问用户发出告警提示,对用户访问体验和信任度造成很大影响,所以网站管理人员一定要时刻关注SSL证书的有效期。以下中科三方将为大家介绍三种查看SSL证书…

    2025年1月2日
  • HP Unix openssl、openssh 升级

    一、升级前请先启用telnet服务!防止远程ssh连接断开后无法连到服务器上。 二、准备好下面的5个包,这几个包是升级openssh和openssl所依赖的。 下面的包的官网下载地…

    2025年1月2日

发表回复

登录后才能评论