首页 > 编程语言 >加密算法的比较

加密算法的比较

时间:2024-01-11 11:13:51浏览次数:30  
标签:加密 64 密钥 ms 长度 Byte 比较 加密算法

对称加密								非对称加密
des(64位补齐)			aes(128位补齐)			blowfish(64位补齐)		rsa

单位(Byte) des_ecb des_cbc des_cfb aes_ecb aes_cbc aes_cfb blowfish_cbc blowfish_cfb rsa
密文长度(50) 56 Byte 56 Byte 56 Byte 64 Byte 64 Byte 64 Byte 56 Byte 56 Byte 128 Byte
密文长度(500) 504 Byte 504 Byte 504 Byte 512 Byte 512 Byte 512 Byte 504 Byte 504 Byte
加密百万次(50) 1761 ms 2043 ms 7503 ms 1014 ms 997 ms 1099 ms 33478 ms 32947 ms 409660 ms
加密百万次(500) 8439 ms 8065 ms 58281 ms 1387 ms 1933 ms 2136 ms 36801 ms 37175 ms
解密百万次(50) 1310 ms 1326 ms 6598 ms 515 ms 577 ms 624 ms 32495 ms 32526 ms 412310 ms
解密百万次(500) 7301 ms 7082 ms 54382 ms 796 ms 843 ms 1576 ms 35989 ms 36847 ms
image

DES算法把64位的明文输入块变為64位的密文输出块,它所使用的密钥也是64位,其功能是把输入的64位数据块按位重新组合。数据加密标准是IBM提出的,第一个基于Lucifer算法的加密技术。作为第一个加密标准,自然会带有些许瑕疵漏洞使其不是特别的安全。

AES中规定块长度为128 bit,而密钥长度可以选择128, 192或256 bit,是现行的对称加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。针对AES唯一的破解方式就是暴力破解。

Blowfish由Bruce Schneier发明的一种在世界范围被广泛使用的加密方式。Blowfish使用16到448位不同长度的密钥对数据进行16次加密。这样黑客们基本不可能对其进行解密。直到现在(作者发文时),还没有针对blowfish的破解。

n种模式

ECB:是一种基础的加密方式,密文被分割成分组长度相等的块(不足补齐),然后单独一个个加密,一个个输出组成密文。
CBC:是一种循环模式,前一个分组的密文和当前分组的明文异或操作后再加密,这样做的目的是增强破解难度。
CFB/OFB实际上是一种反馈模式,目的也是增强破解的难度。

非对称加密 rsa

注意代码1024是密钥长度,目前主流可选值:1024、2048、3072、4096...低于1024bit的密钥已经不建议使用(安全问题)。65537是公钥指数,是随意选的质素,但目前行业上公钥指数普遍选的都是65537
根据测试,发现密钥长度限制了原文的长度,及原文长度不能超过1024bit/128byte(实际128 -11 = 117 byte),且50byte的数据加密出来的密文长度为128byte,也与密钥长度相关
因为长度限制.如果加密信息较多,可写逻辑进行分段加解密(不建议对大量信息rsa加密,效率低效)

推荐使用非对称加密(rsa)和对称加密(aes_cbc)结合
客户端持有公钥,服务端持有私钥,建立socket连接后客户端随机生成对称密钥,使用公钥加密后发到服务端,之后协议正常使用对称密钥进行加解密

标签:加密,64,密钥,ms,长度,Byte,比较,加密算法
From: https://www.cnblogs.com/karl2013/p/17958108

相关文章

  • 工业级与商业级交换机的比较分析
    在数字化时代的浪潮中,交换机作为网络通信的核心,起到了不可或缺的作用。本文将深入探讨工业级交换机和商业级交换机的差异,深入浅出地分析二者的功能、性能以及应用场景等方面的区别。定义与应用领域工业交换机,即工业以太网交换机,是专为工业控制领域设计的设备。这些设备能够适应极端......
  • 比较一下配置类加注解的方式和使用XML的区别
    使用注解和配置类的方式相较于XML方式,有以下几个优点:简化配置:通过使用注解和配置类,可以将SQL语句和映射配置直接写在Java代码中,避免了繁琐的XML配置。这样可以使配置更加简洁明了,减少了编写和维护配置文件的工作量。提高可读性:注解和配置类的方式将相关的配置信息直接与代码......
  • 生成对抗网络与变分自编码器:比较与应用
    1.背景介绍生成对抗网络(GenerativeAdversarialNetworks,GANs)和变分自编码器(VariationalAutoencoders,VAEs)都是深度学习领域的重要算法,它们在图像生成、数据增强、降噪等方面具有广泛的应用。这篇文章将从背景、核心概念、算法原理、实例代码、未来发展等多个方面进行全面的介绍和......
  • 当lightgbm 数据比较少的时候怎么办
    当使用LightGBM(一种梯度提升框架)处理相对较少的数据时,可以考虑以下一些方法:调整参数:在训练LightGBM模型时,可以通过调整参数来适应小规模的数据集。例如,减少num_leaves、max_depth等参数,以降低模型的复杂性。使用更轻量级的模型:如果数据集很小,可以考虑使用较小规模的模型,例如降低n......
  • python学习笔记7(不同进制之间的转换、算术运算符、赋值运算符、比较运算符、逻缉运算
    一)不同进制之间的转换二进制:0B或0b开头八进制:0o或0O开头十六进制:0x或0X开头(二)算术运算符//整除幂运算print(23)算术运算符优先级1、**2、*,/,%,//3、+,-(三)赋值运算符+=、-=、*=、/=、%=、**=、//=python支持链式赋值a=b=c=100python支持系列解包赋值a,b=10,20python中的值交换b,a=......
  • 在Python中,有几个库可以帮助我们自动寻找最适合的机器学习模型和参数。这里有两个主要
    在Python中,有几个库可以帮助我们自动寻找最适合的机器学习模型和参数。这里有两个主要的库:1.**lazypredict**¹:这个库可以快速地比较多种机器学习算法的性能,从而帮助我们选择最佳的算法。它可以在循环中迭代多个模型,这通常需要一些时间,但是使用lazypredict可以克服这个限制。下......
  • 北京软件开发公司哪家比较专业
    软件开发公司有很多,专业水平也参差不齐,以下是一些比较知名的专业软件开发公司:华盛恒辉科技有限公司:是一家专注于高端软件定制开发服务和高端建设的服务机构,致力于为企业提供全面、系统的开发制作方案。在开发、建设到运营推广领域拥有丰富经验,在教育,医疗,APP,管理,商城,人......
  • 北京哪个软件公司做软件比较好呢
    选择一个好的软件公司,需要根据自己的实际需求来决定。以下是一些北京地区比较知名的软件公司,供您参考:华盛恒辉科技有限公司:是一家专注于高端软件定制开发服务和高端建设的服务机构,致力于为企业提供全面、系统的开发制作方案。在开发、建设到运营推广领域拥有丰富经验,在教育......
  • MySQL下count(*)、count(1)和count(字段)的查询效率比较
    InnoDB存储引擎COUNT(*)和COUNT(1)都是对所有结果进行计算。如果有WHERE子句,则是对所有符合筛选条件的数据行进行统计;如果没有WHERE子句,则是对数据表的数据行数进行统计。因为COUNT(*)和COUNT(1)本质上没有区别,执行的复杂度都是O(N),也就是采用全表扫描,进行循环+计数的方式进行统计......
  • TSNE vs PCA:比较高维数据降维的两大巨头
    1.背景介绍随着数据量的增加,高维数据的处理和可视化变得越来越困难。高维数据降维技术成为了处理和可视化高维数据的重要方法。PCA(PrincipalComponentAnalysis)和t-SNE(t-distributedStochasticNeighborEmbedding)是两种非常常用的高维数据降维方法,本文将对这两种方法进行比较和......