密码模块我用的crypto-js,因为目测文档比较丰富。
因为业务需要,需要将Hmac-sha1摘要出的二进制串Base64编码后发送。
但是由于crypto-js在内部加密使用的是私有的二进制数组WordArray,在给其他模块Base64编码时,总是没法拿到原生的二进制串,于是去认真学习了crypto-js。
结果发现没必要拿到原生的二进制串,crypto直接就可以以Base64编码输出。
感觉NodeJS和Java的模块的设计思路偏差还是比较大的,node中并没有一个统一的通行协议,模块按功能进行划分,模块的边界也只能在功能而不能在算法,模块内用私有的数据对象,给多个模块联合工作带来比较大的不便,但是每个模块功能又非常健全,几乎不需要同其它模块合作。
感觉这是语言基因不一样,需要更深入的学习NodeJS