Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Encryption '=';末尾的符号表示加密_Encryption - Fatal编程技术网

Encryption '=';末尾的符号表示加密

Encryption '=';末尾的符号表示加密,encryption,Encryption,我使用128位Rijndael和ECB密码模式加密来转换我的字符串。它使用符号=或=对某种字符串进行格式化 在我的代码中,我需要一些初步决定,这个字符串是加密的。我是否可以建议,如果它的结尾包含=符号,则它是加密的,或者在可能的情况下,我将无法在加密字符串的结尾中获得=符号?首先,如果您使用ECB,您并不是真正的“加密”,因为它是一种中断的密码模式(请参阅:) 其次,您看到的=符号是Base64填充字符。因为Base64用于任何类型的二进制数据,而不仅仅是加密的日期,所以它们仅与加密相关 第三,

我使用128位Rijndael和ECB密码模式加密来转换我的字符串。它使用符号
=
=
对某种字符串进行格式化


在我的代码中,我需要一些初步决定,这个字符串是加密的。我是否可以建议,如果它的结尾包含
=
符号,则它是加密的,或者在可能的情况下,我将无法在加密字符串的结尾中获得
=
符号?

首先,如果您使用ECB,您并不是真正的“加密”,因为它是一种中断的密码模式(请参阅:)

其次,您看到的=符号是Base64填充字符。因为Base64用于任何类型的二进制数据,而不仅仅是加密的日期,所以它们仅与加密相关


第三,对于Base64数据,您甚至不能依赖始终存在=符号。。。它只针对特定长度的数据添加(即,您可以对没有=号的Base64数据进行加密)

正如@JoelFan指出的那样,这些“=”字符是Base64填充,根本不属于加密的一部分,如果数据自然输出到正确的字符数,它们也不总是存在

你需要添加一些“带外”的内容。我将用一个类替换可能加密的字符串,该类具有数据的字符串成员和“加密”标志。到达后,加入一个
getData()
方法,该方法检查实例的数据是否加密,如果加密,则返回数据的未加密值(如果经常访问,则可能将明文缓存在私有成员中以备以后使用),如果未加密,则仅返回明文