C/C++加密:测量数据速率

C/C++ Encryption: Measure Data Rate

本文关键字:测量 数据 速率 加密 C++      更新时间:2023-10-16

我正在开发一个C++程序,该程序实现了一些加密算法(AES、Blowfish),我需要获得一些指标进行评估。具体来说,我需要以每秒千字节为单位来测量加密/解密操作的数据。此操作将使用相同的纯文本数据来测量不同的算法。其中一部分是简单地使用计时器来获取秒数,第二部分是计数位数。从这里我可以计算出每秒的千字节数。

我试图解决的问题是如何测量通过算法的比特数。算法以固定大小的无符号字符数组的格式输入(8或16个字符取决于算法)。我最初的解决方案是计算通过算法的字符数,并将其作为字节数。字节乘以8可能就是比特计数,但是我读到一个字符不一定总是8比特字节。比特计数的差异可能会显著地扭曲结果。

如何准确地获得无符号字符数组中的位数?(或者该数组中单个char元素的位数)。

char不太可能是8位,但如果您需要是100℅则使用int8_t/uint8_t。在任何情况下,对于二进制数据,uint8_t都是比char更自然的类型——它避免了char在任何给定平台上是有符号的还是无符号的问题。

有关char中的位数,请参阅此现有问题:获取字符中的位数