【发布时间】:2018-02-22 18:38:59
【问题描述】:
首先我要提到我见过Unit testing of encrypt/decrypt和Unit testing encryption and decryption in Java。
我想通过验证其许可证来保护库。许可证包含最大用户数和到期时间等信息。
我遇到的问题是:
- 加密器和解密器位于两个不同的代码库中。解密器与库一起打包,但加密器没有,因此很难将它们都放在同一个测试套件中!
- 加密器中使用了随机盐,因此即使输入相同,加密器每次都会产生不同的输出,我再次无法对结果进行断言。
- 出于其目的,解密器(使其更难为其注入另一个类)是最终类,它的所有方法都是私有的,除了少数包可访问的入口点。
我不想测试 JCE,但我想测试我的代码:
- 从加密的许可证中提取盐,
- 解密加密的许可证,
- 将输出反序列化为某些包含许可证数据的数据结构,
我是否应该创建代码的克隆,并使用一些更软的访问约束并对其进行测试?那么问题是我没有测试在客户端系统上运行的真实代码。
有没有更好的解决方案来做到这一点?
【问题讨论】:
标签: java unit-testing encryption jce