UDN-企业互联网技术人气社区

板块导航

浏览  : 426
回复  : 2

[Nodejs] Cryptography & Nodejs

[复制链接]
芭芭拉的头像 楼主
发表于 2016-12-31 15:54:46 | 显示全部楼层 |阅读模式
  扫盲

  Cryptography is the art and science of making a cryptosystem that is capable of providing information security.

  密码学(Cryptography)是研究如何通过一系列相关技术手段构建一套加密系统确保系统的信息安全。

  信息安全的目标

  私密性(Confidentiality)

  数据完整性(data integrity)

  身份可验证(authentication)

  不可否认性(non-repudiation)

  常见手段

  加密(Encryption)

  为了保证消息明文不被截获,常采取传递加密消息的手段。大致流程如下图,
5.png

  加密通常需要向加密算法提供消息明文和加密秘钥,加密方式常分为对称加密和非对称加密。

  对称加密的秘钥只有一个,消息发送接收方各自拥有同一个加密秘钥用来加解密。常见算法有:DES、AES等。

  非对称加密的秘钥有两个,加解密需要同时配合两个秘钥进行,在通信过程中,双方各自向对方提供自己的加密公钥,在向对方发消息时使用对方的加密公钥进行加密,而对方发过来的消息则可以通过自己的秘钥对进行解密。常见的机制有:RSA 、ElGamal等。

  哈希(Hash functions)
4.png

  如图示,哈希是指把原消息文哈希压缩算法转换成固定长度的字符串。所选择的算法生成的字符串和原文内容唯一对应,不会有两个不同的原文输入生成出一样的字符串,因此可以用来确保原文内容的完整性。除此以外,hash之后的结果通常无法还原成输入的原文,即hash一般是不可逆的。

  常见算法有MD、SHA等。

  消息身份验证码(Message Authentication codes (MAC))
3.png

  如图示,消息身份验证用于验证发消息的来源合法,和验证消息原文没被修改类似,通过消息身份验证码算法接收身份key和原文计算验证码,传输后在接收方再一次进行计算然后比较一致性。

  数字签名(Digital Signatures)
2.png

  如图示,数字签名比消息身份验证更进一步,结合原始消息文本的hash值和秘钥对计算验证码进行验证。

  手段和目标之间的关系:
1.png

  所以如图示,如果要设计出一个满足上述各种安全性目标的系统,需要结合其中的多种手段来实现。 例如,加密原始消息内容之后再应用数字签名机制传递消息。

  参考文章: Cryptography - Quick Guide

  Crypto in nodejs

  nodejs中的密码相关的功能都在 crypto 这个模块中。

  使用时需要引入该模块 var crypto = require('crypto');

  根据上述的密码相关手段,可以对应到 crypto 模块中的相应方法

  官方文档 有各方法的详细说明和示例代码,这里只说明一下这些方法使用的场景。

  加密解密

  使用 crypto.createCipher[vi] 及 crypto.createDecipher[vi] .

  秘钥管理

  使用 crypto.createDiffieHellman , crypto.createECDH 等。

  哈希运算

  使用 crypto.createHash

  消息验证码运算

  使用 crypto.createHmac

  数字签名

  使用 crypto.createSign 及 crypto.createVerify

相关帖子

发表于 2016-12-31 15:55:19 | 显示全部楼层
回帖支持下楼主,请眼熟我,我叫“剑舞天涯“
使用道具 举报

回复

发表于 2017-1-1 04:31:04 | 显示全部楼层
js框架越来越火了, 不过本人还是喜欢原生的好, 自己写类库, 自己来封装,用着方便。。。。
使用道具 举报

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们
联系我们
  • 电话:010-86393388
  • 邮件:udn@yonyou.com
  • 地址:北京市海淀区北清路68号
移动客户端下载
关注我们
  • 微信公众号:yonyouudn
  • 扫描右侧二维码关注我们
  • 专注企业互联网的技术社区
版权所有:用友网络科技股份有限公司82041 京ICP备05007539号-11 京公网网备安1101080209224 Powered by Discuz!
快速回复 返回列表 返回顶部