node.js入门 - 11.api:DNS和加密

今天介绍的是DNS和加密相关的api。

  DNS

  dns包括两个主要的方法:resolve(),把域名转换成dns记录;reverse(),把ip地址转换成域名。

  dns.resolve()包括三个参数:域名,记录类型和回调函数。

复制代码
var dns = require('dns');
dns.resolve('yahoo.com', 'A', function(e,r) {   if (e) {     console.log(e);   }   console.log(r); } );
复制代码

  回调函数返回两个参数,第一个是异常,第二个是处理结果。dns里面有一些方便的方法,如下面两个方法时等价的。

复制代码
var dns = require('dns');
dns.resolve('example.com', 'MX', function(e, r) {
  if (e) {
    console.log(e);
  }
  console.log(r);
});
dns.resolveMx('example.com', function(e, r) {
  if (e) {
    console.log(e);
  }
  console.log(r);
});
复制代码

  

  加密

  node使用OpenSSL实现它的加密。

  哈希  

  首先介绍哈希算法的使用,使用crypto.createHash()方法可以得到哈希的实例,他提供的算法实现包括:md5,sha1,sha256,sha512,ripemd160。在下面的例子中,我们使用hash.update()加密字符串,使用hash.digest()输出字符串。

var crypto = require('crypto');
var md5 = crypto.createHash('md5');
md5.update('foo');
md5.digest();

运行结果:

   上面输出的结果有点怪异,是因为他是以2进制的形式展现的,通常我们需要使用16进制展现数据。给hash.digest()加个参数:hex。

var crypto = require('crypto');
var md5 = crypto.createHash('md5');
md5.update('foo');
md5.digest('hex');

  当你使用了hash.digest()之后,hash对象就使用完毕了,你不能再使用它了,否则就会报错。你只能重新创建一个新的hash对象。

var crypto = require('crypto');
var md5 = crypto.createHash('md5');
md5.update('foo');
md5.digest();
md5.digest('hex');

 

  HMAC

  我们使用crypto.createHmac()创建hmac的实例。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值