加密:在明文前加随机数,比如当前日期和时间;且随机数长度不能等于加密算法的block长度,比如des算法,添加的随机数不能是8的整数倍;之后在添加随机数的数据的后面补位,这样就可以打乱明文的秩序,从而导致每次加密的结果不同。
解密:对上述密文进行解密并去掉随机数和补位,即可得到预期的明文。
例如:
使用密钥57415443484441544154696D65434F53对1122334455667788进行des加密:
第一次加密时,在明文前面补AA,后面补位80000000000000,加密结果为F1659E8A8DCB11A6C4015CEB8D00F38B
第二次加密时,在明文前面补BB,后面补位80000000000000,加密结果为ED6361B25CAF77C9C4015CEB8D00F38B
两次加密结果不同。
之后使用使用密钥57415443484441544154696D65434F53对两个加密结果进行des解密
其结果分别为
AA112233445566778880000000000000
BB112233445566778880000000000000
之后对上述两个结果去掉前面1字节补位和后7字节补位,即可得到相同的结果