SparkMd5-对文件名称加密

发布于:2024-06-25 ⋅ 阅读:(17) ⋅ 点赞:(0)

当我收到一个需求是需要对上传的文件名称加密的时候,我便想到了使用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"