美文网首页
leetcode535 TinyURL 的加密与解密,设计加解密

leetcode535 TinyURL 的加密与解密,设计加解密

作者: 安夏深蓝翼 | 来源:发表于2019-10-17 16:35 被阅读0次

TinyURL是一种URL简化服务, 比如:当你输入一个URL https://leetcode.com/problems/design-tinyurl 时,它将返回一个简化的URL http://tinyurl.com/4e9iAk.

要求:设计一个 TinyURL 的加密 encode 和解密 decode 的方法。你的加密和解密算法如何设计和运作是没有限制的,你只需要保证一个URL可以被加密成一个TinyURL,并且这个TinyURL可以用解密方法恢复成原本的URL。

答案:

public class Codec {

String alphabet = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";

HashMap<String, String> map = new HashMap<>();

Random rand = new Random();

String key = getRand();

public String getRand() {

StringBuilder sb = new StringBuilder();

for (int i = 0; i < 6; i++) {

sb.append(alphabet.charAt(rand.nextInt(62)));

}

return sb.toString();

}

public String encode(String longUrl) {

while (map.containsKey(key)) {

key = getRand();

}

map.put(key, longUrl);

return "http://tinyurl.com/" + key;

}

public String decode(String shortUrl) {

return map.get(shortUrl.replace("http://tinyurl.com/", ""));

}

}

相关文章

  • leetcode535 TinyURL 的加密与解密,设计加解密

    TinyURL是一种URL简化服务, 比如:当你输入一个URL https://leetcode.com/prob...

  • 71. 简化路径/535. TinyURL 的加密与解密

    71. 简化路径 相关标签 : 栈 字符串 535. TinyURL 的加密与解密

  • Rsa加解密

    /*** Rsa 加解密* 用法:* (1)公钥加密,私钥解密* (2)私钥加密,公钥解密*/class ...

  • 区块链——加密算法精解

    算法体系 现代加密算法的典型组建包括:加解密算法、加密密钥、解密密钥。其中,加解密算法自身是固定不变的,一般是公开...

  • 加解密算法

    本文主要是了解加解密的基础知识,首先我们了解什么是加解密及分类,然后我们谈到加解密的系统组成,接着我们看对称加密...

  • AES加密算法.md

    在线AES加解密网站 发现这个网站除了可以在线AES加解密,还有MD5在线加密 、SHA1在线加密 、Base64...

  • 区块链之加解密算法

    常用的加解密算法  常用的加解密算法有三类:对称加密算法、非对称加密算法以及hash加密算法。 在比特币中用到了非...

  • 深入理解加密解密

    一、概述 在开发项目中我们必然会涉及到加密解密,我们常需要用到加解密算法,加解密算法主要分为三大类: 1、对称加密...

  • 常用的加解密算法的优缺点、应用场景总结

    常用的加解密算法的优缺点、应用场景总结 一、加解密的基础知识 1、对称密钥加密 对称密钥加密(一个密钥),也叫做共...

  • CryptoJS 使用

    数组加密,Utf8编码,传递,加解密 加密,Base64编码,传递,解密 引用PHP 和 Web 端对称加密传输|...

网友评论

      本文标题:leetcode535 TinyURL 的加密与解密,设计加解密

      本文链接:https://www.haomeiwen.com/subject/bclvmctx.html