【问题标题】:RC4 Drop-N PHP ImplementationRC4 Drop-N PHP 实现
【发布时间】:2014-04-04 11:01:15
【问题描述】:

我已经在 PHP 中实现了 RC4 密码(它看起来几乎与 http://pear.php.net/package/Crypt_RC42 相同)。

不过,我想介绍 (http://en.wikipedia.org/wiki/RC4#Fluhrer.2C_Mantin_and_Shamir_attack) 中提到的“Drop-N”方法。

有没有一种基于我上面使用的类的简单方法来实现这个?

【问题讨论】:

    标签: php encryption rc4-cipher


    【解决方案1】:

    您所要做的就是在加密(或解密)之前将 n 个字节的数据添加到明文(或密文)的开头。

    这些字节包含什么并不重要,只要它们有 n 个。然后丢弃加密(解密)数据的前 n 个字节。使用不同的填充字节进行加密和解密不会有任何区别。

    或者换句话说:

    $define('DROP_N_PADDING_LENGTH',512);  // (or whatever)
    $message = "Hello, world!";
    
    // encrypt:
    $ciphertext = $rc4->encrypt(str_repeat(" ",DROP_N_PADDING_LENGTH) . $message);
    $ciphertext = substr($ciphertext,DROP_N_PADDING_LENGTH);
    
    // decrypt:
    $plaintext = $rc4->decrypt(str_repeat(" ",DROP_N_PADDING_LENGTH) . $ciphertext);
    $plaintext = substr($plaintext,DROP_N_PADDING_LENGTH);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-23
      相关资源
      最近更新 更多