8000 GitHub - peknight/security: 封装Java安全相关代码,提供函数式方法
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

peknight/security

Repository files navigation

Security

Java的加解密相关的api太难用了。各种加密算法名全是字符串指定,类型安全无从谈起。

当然了,另一方面加密api难用也是因为加密算法种类太多了,各种参数更是五花八门,看着就头大。

各种术语名称还都TM是缩写,这谁扛得住啊。

为了让自己学习一遍加密相关的知识我决定还是手撸一套函数式的加密库,边用边实现。

顺便基于此库也让我后续调用加密逻辑时能有类型安全,调用更省心。

搞了这个库其实也不是上面令人头大的问题就都解决了,基本只能解决类型安全问题,其它问题因为它本身就五花八门我也简化不了。

因为是自己边用边实现的,所以目前只实现了加密领域的冰山一角功能,更多实现等我用到再补充吧。

大体思路是对各类算法按其用途是加密、哈希、签名等定义了trait,每种算法实现相应的trait。

然后每种trait按其能力提供函数式的api调用相关方法(把getInstance、init、update、doFinal,sign、verify这些方法整合起来,避免中间态的可变参数暴露给调用方。

在实现jose的过程中用到了很多加解密相关的逻辑,和jose本身没啥耦合的加解密逻辑基本都整合到这个库里了。

顺便参考Google Authenticator把它的OTP功能实现出来了,这玩意的原理倒是挺简单。

About

封装Java安全相关代码,提供函数式方法

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

0