当我收到一个需求是需要对上传的文件名称加密的时候,我便想到了使用md5对文件名称加密,但其实是大题小做了,对文件名称加密其实就是将中文转换成英文字母,所以我们可以换一个更简单的方法来实现这个需求。
在JavaScript中,你可以使用`encodeURIComponent`函数来对字符串进行URL编码,然后使用`btoa`函数将编码后的字符串转换为Base64格式。这样可以实现对字符串的加密。以下是具体的代码示例:
function encryptString(str) {const encodedUriComponent = encodeURIComponent(str);const base64Encoded = btoa(encodedUriComponent);return base64Encoded;
}// 使用示例
const originalString = "你好呀,很高兴见到你!";
const encryptedString = encryptString(originalString);
console.log(encryptedString);// JUU0JUJEJUEwJUU1JUE1JUJEJUU1JTkxJTgwJUVGJUJDJThDJUU1JUJFJTg
// 4JUU5JUFCJTk4JUU1JTg1JUI0JUU4JUE3JTgxJUU1JTg4JUIwJUU0JUJEJUEwIQ==
SparkMd5加密文件名称:
“加密”实际上是指使用SparkMD5库来计算文件名称(或任何字符串)的MD5哈希值。MD5是一个常用的哈希函数,它接收任意长度的数据作为输入,并输出一个固定长度(对于MD5来说是128位,通常表示为32个字符的十六进制数)的哈希值。这个哈希值通常用于检查数据的完整性,或在需要唯一标识符但不存储原始数据的情况下使用。
const SparkMD5 = require('spark-md5'); function computeHash(str) { const spark = new SparkMD5.ArrayBuffer(); spark.append(str); return spark.end(); // 返回十六进制字符串
} const fileName = "example.txt";
const fileNameHash = computeHash(fileName);
console.log(fileNameHash); // 输出类似 "2a10752ebf3c3f7c8e8c7a7996a9b74e"