打字稿中的标准化 md5 哈希 (Angular)
Standardized md5 hashing in typescript (Angular)
我正在尝试生成一个在后端和前端生成的 ID(我知道这不是最佳做法)。 id 是几个(动态生成的,即我事先不知道哈希)字符串连接在一起的 Md5 哈希。所以我尝试做的是使用 Md5 class(在 ts-md5/dist/md5
中)创建一个 Md5 散列:
getId(s1: string, s2: string, s3: string) : string {
return Md5.hashStr(`${s1}/${s2}/${s3}`);
}
但是,后端返回的哈希与getId()
返回的哈希不匹配。
以下是我在后端创建哈希的方法 (Python):
id = hashlib.md5("some_string_seed".encode("utf-8")).hexdigest()
我认为可能问题出在编码上,但添加编码并没有改变任何东西:
encode_utf8( s )
{
return unescape( encodeURIComponent( s ) );
}
return Md5.hashStr(encode_utf8(`${s1}/${s2}/${s3}`));
我尝试了一些基本示例,但哈希值不匹配。
如何使散列相同? (无法修改后端)
我的解决方案是使用 crypto-js
,其 md5 哈希算法产生与 hashlib
、Python 库相同的结果。
我正在尝试生成一个在后端和前端生成的 ID(我知道这不是最佳做法)。 id 是几个(动态生成的,即我事先不知道哈希)字符串连接在一起的 Md5 哈希。所以我尝试做的是使用 Md5 class(在 ts-md5/dist/md5
中)创建一个 Md5 散列:
getId(s1: string, s2: string, s3: string) : string {
return Md5.hashStr(`${s1}/${s2}/${s3}`);
}
但是,后端返回的哈希与getId()
返回的哈希不匹配。
以下是我在后端创建哈希的方法 (Python):
id = hashlib.md5("some_string_seed".encode("utf-8")).hexdigest()
我认为可能问题出在编码上,但添加编码并没有改变任何东西:
encode_utf8( s )
{
return unescape( encodeURIComponent( s ) );
}
return Md5.hashStr(encode_utf8(`${s1}/${s2}/${s3}`));
我尝试了一些基本示例,但哈希值不匹配。
如何使散列相同? (无法修改后端)
我的解决方案是使用 crypto-js
,其 md5 哈希算法产生与 hashlib
、Python 库相同的结果。