encryption - 将一个数字加密为特定字段中的另一个数字
问题描述
例如,现在我想加密我的生日 19960609,如果我使用其他一些保留格式的加密,我会得到一个不像生日的数字。但是,我想要我的加密生日,例如 19870928,它位于特定字段中。以生日为例,该字段类似于 [19000101,20191117]。我想知道是否有任何解决方案可以将一个数字加密为特定字段中的另一个数字,并且这个加密的生日也可以恢复到原始值。
解决方案
您可能想要搜索术语encoding
。字符串“19960609”只是日期值 09/06/1996 的编码表示。
为了让您了解算法(ROT13的变体):
// find the number of days between the start of your interval and the to be encoded date
a := COUNT_DAYS_BETWEEN(19960609, 19000101)
// find thesize of your interval
b := COUNT_DAYS_BETWEEN(19000101, 20191117)
// add or subtract a choosen number
c := a - 3567
// take care that it still fits into your interval
d := MODULO(c, b)
由于该算法只是将生日改变了一些选定的日子,因此它是可逆的。随意用更复杂的算法替换 c 中的操作。
推荐阅读
- sql - 为什么完全相同的查询在 prod env 中很快,但在 Dev env 中却很慢?
- r - 没有适用于“单独_”的方法应用于“字符”类的对象
- git - 带有 GIT 的 Android 工作室 - 真的是 GIT 吗?
- python - 如何为我的项目创建 Tensorboard?
- javascript - 如何使用云功能在 Firestore 中添加虚拟数据
- java - 如何编写单元测试用例来验证签名?
- r - 如何在数据框中输出 NA 值的位置?
- python - del 会改变列表中其他项目的位置吗?
- java - ms Graph api(beta) 访问被拒绝
- python - 如何将 Postgres 结果集作为 CSV 从远程数据库连接导出到本地机器?