phpseclib零字节填充

phpseclib零字节填充,php,encryption,phpseclib,3des,Php,Encryption,Phpseclib,3des,如何在EBC模式下使用加密方法3des在phpseclib中添加零字节填充 以下是我当前的代码: $cipher = new TripleDES(TripleDES::MODE_ECB); $cipher->setKey('1234567890ABCDEFGHIJKLMN'); 想想看: 禁用填充: $cipher->disablePadding(); 手动输入消息: $message_padded = $urlencoded; if (strlen($message_padd

如何在EBC模式下使用加密方法3des在phpseclib中添加零字节填充

以下是我当前的代码:

$cipher = new TripleDES(TripleDES::MODE_ECB);
$cipher->setKey('1234567890ABCDEFGHIJKLMN');
想想看:

  • 禁用填充:
    $cipher->disablePadding();
    
  • 手动输入消息:
    $message_padded = $urlencoded;
    if (strlen($message_padded) % 8) {
        $message_padded = str_pad($message_padded,
            strlen($message_padded) + 8 - strlen($message_padded) % 8, "\0");
    }
    
  • 加密:
    $result = $cipher -> encrypt($message_padded);
    

  • 怎么样
    $cipher->enablePadding()?由于
    TripleDES
    extends
    DES
    extends
    BlockCipher
    extends
    SymmetricKey
    ,您可以使用
    SymmetricKey
    类中定义的
    启用填充()。但实际上没有尝试。我们可以在enablePadding方法中自定义填充字符吗?例如$cipher->enablePadding('\0');你的方法看起来不错,但你为什么要这么做?顺便说一句,你可以添加一个新的方法来包装上述代码,这样你就可以很容易地重用定制的填充方法。因为有一个服务(合作伙伴)需要上述加密方法。2.我试试看,谢谢你的建议