准备编码和解码算法以缩短 JavaScript 中的 URL


我们经常通过 bit.ly 和 tinyurl 这样的服务来获取任何 url(通常长度较大),对其执行一些加密算法,并返回一个非常短的 url。当我们尝试打开该 tiny url 时,它会再次运行一些解密算法,将短 url 转换为原始 url,然后为我们打开链接。

我们还需要执行相同的任务。我们实际上需要编写两个函数 -

  • encrypt() --> 它将获取原始 url,并向我们返回一个短的唯一 url。

  • decrypt() --> 它将获取短 url,它事先不知道原始 url,并将它转换为原始 url。

示例

代码如下 -

 在线演示

const url = 'https://mdn.org.cn/en-US/docs/Web/JavaScript';
const encrypt = (longUrl) => {
   const encodedUrl = Buffer.from(longUrl, 'binary').toString('base64');
   return "http://mydemo.com/" + encodedUrl;
};
const decrypt = function(shortUrl) {
   let encodedUrl = shortUrl.split('mydemo.com/')[1];
   return Buffer.from(encodedUrl, 'base64').toString();
};
const encrypted = encrypt(url);
const decrypted = decrypt(encrypted);
console.log(encrypted);
console.log(decrypted);

输出

控制台中会输出 -

http://mydemo.com/aHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdA==
https://mdn.org.cn/en-US/docs/Web/JavaScript

更新时间: 03-Mar-2021

715 次观看

开启你的职业生涯

通过完成课程来获得认证

开始
广告