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的实例。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构