精易论坛
标题:
java 转js 20行
[打印本页]
作者:
Dinesh
时间:
2022-10-31 00:35
标题:
java 转js 20行
public
static
String
encodeString
(
String
str
,
String
str2
,
String
str3
)
{
sequence
++
;
String
format
=
new
SimpleDateFormat
(
"yyyyMMdd"
)
.
format
(
new
Date
(
)
)
;
byte
[
bArr
=
new
byte
[
24
;
try
{
MessageDigest
messageDigest
=
MessageDigest
.
getInstance
(
"MD5"
)
;
byte
[
digest
=
messageDigest
.
digest
(
(
format
+
str
+
sequence
)
.
getBytes
(
)
)
;
for
(
int
i
=
0
;
i
<
16
;
i
++
)
{
bArr
[
i
=
digest
[
i
;
}
messageDigest
.
reset
(
)
;
messageDigest
.
update
(
str3
.
getBytes
(
"UTF-8"
)
)
;
messageDigest
.
update
(
bArr
,
0
,
16
)
;
messageDigest
.
update
(
"icanseeu"
.
getBytes
(
)
)
;
byte
[
digest2
=
messageDigest
.
digest
(
)
;
for
(
int
i2
=
0
;
i2
<
8
;
i2
++
)
{
bArr
[
16
+
i2
=
digest2
[
i2
;
}
}
catch
(
UnsupportedEncodingException
|
NoSuchAlgorithmException
unused
)
{
}
return
android
.
util
.
Base64
.
encodeToString
(
bArr
,
1
)
;
}
}
帮忙翻一下成js
作者:
小白熊
时间:
2022-10-31 00:35
前提:MD5是32位的hex字符串,是16个字节,以下将MD5作为16字节的字节集看待
参数:str1 这里改叫 A str2 这里改叫 B str3 这里改叫 C 这样比较好辨认
算法:
1.sequence 是一个整数,每次执行这个函数该值加1
2.取一个日期字符串 格式为 20221031 这个变量下面叫 D
3.取第一个MD5 MD51=MD5(D+A+到文本(sequence)) 三个参数均字符串连接然后计算md5,这样就得到了MD51,MD51是字节集
4.计算MD52 MD52=(到字节集(C)+MD51+到字节集("icanseeu")) 这里中间的参数是字节集连接
5.最终结果为 MD51 + MD52的前8个字节 进行字节集连接,这样就得到24字节的结果,再进行base64编码即可
注意:字符串有中文需要进行utf8编码
翻译就不给你翻译了,讲给你听你自己搞吧
作者:
Dinesh
时间:
2022-10-31 00:36
都是少一个 ] 我草 页面咋回事
作者:
Dinesh
时间:
2022-10-31 00:43
补充代码
1.txt
2022-10-31 00:43 上传
点击文件名下载附件
1015 Bytes, 下载次数: 6
全代码
作者:
Siempre
时间:
2022-10-31 01:32
传参有中文的话不是蛮好处理 翻译过类似的
作者:
番茄吧
时间:
2022-10-31 08:14
最好发上来你java 用来计算的原文,计算的结果,有人帮你的话,也有个参照,要调试
欢迎光临 精易论坛 (https://125.confly.eu.org/)
Powered by Discuz! X3.4