0
首先,我要提到我已经看到Unit testing of encrypt/decrypt和Unit testing encryption and decryption in Java。单元测试使用位于不同代码库中的一些盐进行加密/解密
我想通过验证其许可证来保护图书馆。该许可证包含诸如最大用户数和到期时间等信息。
我遇到的问题是:
- 的加密和解密是在两个不同的代码库。解密器与库一起封装,但加密器不是,所以它们很难在同一个测试套件中使用!
- 随机盐在加密器中使用,所以即使使用相同的输入,加密器每次都会产生不同的输出,我再也不能对结果做出断言。
- 为了它的目的,解密器(使它更难注入另一个类)是最后一个类,它的所有方法都是私有的,除了一些包可访问的入口点。
我不想考JCE,但我想测试我的代码呢:
- 从提取加密的许可证盐,
- 解密加密许可证,
- 将输出反序列化为包含许可证数据的某些数据结构,
我应该创建一个代码的克隆,并使用一些较软的访问约束和测试?然后问题是我没有测试在客户端系统上运行的真实代码。
有没有更好的解决方案来做到这一点?