用java写一个秘钥为qwe的url防盗链生成
时间: 2023-06-25 19:04:10 浏览: 210
可以使用Java的MessageDigest类和Base64类来生成防盗链的URL。
具体步骤如下:
1. 将URL和秘钥连接起来,得到一个新的字符串。例如:url + "qwe"
2. 使用MessageDigest类的getInstance方法获取SHA-256算法实例,并将新的字符串转换为字节数组,然后使用update方法更新MessageDigest实例。
3. 使用MessageDigest实例的digest方法获取摘要结果,得到一个字节数组。
4. 将摘要结果使用Base64类的getEncoder方法进行编码,得到一个字符串。
5. 将编码后的字符串添加到原始URL中,形成防盗链的URL。
代码示例:
```java
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Base64;
public class AntiTheftLinkGenerator {
private static final String SECRET_KEY = "qwe";
public static String generate(String url) throws NoSuchAlgorithmException {
String input = url + SECRET_KEY;
MessageDigest digest = MessageDigest.getInstance("SHA-256");
digest.update(input.getBytes());
byte[] hash = digest.digest();
String encodedHash = Base64.getEncoder().encodeToString(hash);
return url + "?hash=" + encodedHash;
}
}
```
使用示例:
```java
public class Main {
public static void main(String[] args) throws NoSuchAlgorithmException {
String url = "http://example.com/image.jpg";
String antiTheftLink = AntiTheftLinkGenerator.generate(url);
System.out.println(antiTheftLink);
}
}
```
输出结果:
```
http://example.com/image.jpg?hash=4GxvNnZ+LQZJ5ynUo7d5fOcE7y1Y2wD7Ih6zHf6N9L8=
```
阅读全文