关于验证pdf1.6算法3.5的困惑(用户口令为空)

问题遇到的现象和发生背景

我对一个只设置了权限,但是没有设置文档打开口令(即用户口令为空)的pdf文档进行分析,按照算法3.5的方法(/R的值为4)计算。

问题相关代码,请勿粘贴截图

对32(全为填充)+16字节(ID的前一个字符串)=48字节进行MD5运算,得到hash值,然后用RC4算法以32字节填充为密钥加密hash值,然后再做19遍RC4加密,每轮的密钥为32字节填充的每个字节和i(1...19)的xor,上一次加密的结果即为本次加密的输入。

运行结果及报错内容

最后得到的16字节和文档中的/U前16字节并不相等。(按照算法3.5的描述,用户口令为空的情况下应该相等)

我的解答思路和尝试过的方法
我想要达到的结果

是不是我的算法实现有问题?