Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Z
zxj_js_py
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
zhangxujie
zxj_js_py
Commits
89aa2f95
Commit
89aa2f95
authored
Feb 23, 2024
by
zhangxujie
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
福建省公共资源交易电子公共平台服务
parent
45b90032
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
66 additions
and
277 deletions
+66
-277
js-py/福建省公共资源交易电子公共平台服务.js
+37
-217
js-py/福建省公共资源交易电子公共平台服务.py
+29
-60
No files found.
js-py/福建省公共资源交易电子公共平台服务.js
View file @
89aa2f95
var
hexcase
=
0
;
const
CryptoJS
=
require
(
"crypto-js"
);
var
hexcase
=
0
;
var
b64pad
=
""
;
var
chrsz
=
8
;
function
hex_md5
(
s
){
return
binl2hex
(
core_md5
(
str2binl
(
s
),
s
.
length
*
chrsz
));}
function
b64_md5
(
s
){
return
binl2b64
(
core_md5
(
str2binl
(
s
),
s
.
length
*
chrsz
));}
function
hex_hmac_md5
(
key
,
data
)
{
return
binl2hex
(
core_hmac_md5
(
key
,
data
));
}
function
b64_hmac_md5
(
key
,
data
)
{
return
binl2b64
(
core_hmac_md5
(
key
,
data
));
}
function
calcMD5
(
s
){
return
binl2hex
(
core_md5
(
str2binl
(
s
),
s
.
length
*
chrsz
));}
function
md5_vm_test
()
{
return
hex_md5
(
"abc"
)
==
"900150983cd24fb0d6963f7d28e17f72"
;
}
function
core_md5
(
x
,
len
)
{
x
[
len
>>
5
]
|=
0x80
<<
((
len
)
%
32
);
x
[(((
len
+
64
)
>>>
9
)
<<
4
)
+
14
]
=
len
;
var
a
=
1732584193
;
var
b
=
-
271733879
;
var
c
=
-
1732584194
;
var
d
=
271733878
;
for
(
var
i
=
0
;
i
<
x
.
length
;
i
+=
16
)
{
var
olda
=
a
;
var
oldb
=
b
;
var
oldc
=
c
;
var
oldd
=
d
;
a
=
md5_ff
(
a
,
b
,
c
,
d
,
x
[
i
+
0
],
7
,
-
680876936
);
d
=
md5_ff
(
d
,
a
,
b
,
c
,
x
[
i
+
1
],
12
,
-
389564586
);
c
=
md5_ff
(
c
,
d
,
a
,
b
,
x
[
i
+
2
],
17
,
606105819
);
b
=
md5_ff
(
b
,
c
,
d
,
a
,
x
[
i
+
3
],
22
,
-
1044525330
);
a
=
md5_ff
(
a
,
b
,
c
,
d
,
x
[
i
+
4
],
7
,
-
176418897
);
d
=
md5_ff
(
d
,
a
,
b
,
c
,
x
[
i
+
5
],
12
,
1200080426
);
c
=
md5_ff
(
c
,
d
,
a
,
b
,
x
[
i
+
6
],
17
,
-
1473231341
);
b
=
md5_ff
(
b
,
c
,
d
,
a
,
x
[
i
+
7
],
22
,
-
45705983
);
a
=
md5_ff
(
a
,
b
,
c
,
d
,
x
[
i
+
8
],
7
,
1770035416
);
d
=
md5_ff
(
d
,
a
,
b
,
c
,
x
[
i
+
9
],
12
,
-
1958414417
);
c
=
md5_ff
(
c
,
d
,
a
,
b
,
x
[
i
+
10
],
17
,
-
42063
);
b
=
md5_ff
(
b
,
c
,
d
,
a
,
x
[
i
+
11
],
22
,
-
1990404162
);
a
=
md5_ff
(
a
,
b
,
c
,
d
,
x
[
i
+
12
],
7
,
1804603682
);
d
=
md5_ff
(
d
,
a
,
b
,
c
,
x
[
i
+
13
],
12
,
-
40341101
);
c
=
md5_ff
(
c
,
d
,
a
,
b
,
x
[
i
+
14
],
17
,
-
1502002290
);
b
=
md5_ff
(
b
,
c
,
d
,
a
,
x
[
i
+
15
],
22
,
1236535329
);
a
=
md5_gg
(
a
,
b
,
c
,
d
,
x
[
i
+
1
],
5
,
-
165796510
);
d
=
md5_gg
(
d
,
a
,
b
,
c
,
x
[
i
+
6
],
9
,
-
1069501632
);
c
=
md5_gg
(
c
,
d
,
a
,
b
,
x
[
i
+
11
],
14
,
643717713
);
b
=
md5_gg
(
b
,
c
,
d
,
a
,
x
[
i
+
0
],
20
,
-
373897302
);
a
=
md5_gg
(
a
,
b
,
c
,
d
,
x
[
i
+
5
],
5
,
-
701558691
);
d
=
md5_gg
(
d
,
a
,
b
,
c
,
x
[
i
+
10
],
9
,
38016083
);
c
=
md5_gg
(
c
,
d
,
a
,
b
,
x
[
i
+
15
],
14
,
-
660478335
);
b
=
md5_gg
(
b
,
c
,
d
,
a
,
x
[
i
+
4
],
20
,
-
405537848
);
a
=
md5_gg
(
a
,
b
,
c
,
d
,
x
[
i
+
9
],
5
,
568446438
);
d
=
md5_gg
(
d
,
a
,
b
,
c
,
x
[
i
+
14
],
9
,
-
1019803690
);
c
=
md5_gg
(
c
,
d
,
a
,
b
,
x
[
i
+
3
],
14
,
-
187363961
);
b
=
md5_gg
(
b
,
c
,
d
,
a
,
x
[
i
+
8
],
20
,
1163531501
);
a
=
md5_gg
(
a
,
b
,
c
,
d
,
x
[
i
+
13
],
5
,
-
1444681467
);
d
=
md5_gg
(
d
,
a
,
b
,
c
,
x
[
i
+
2
],
9
,
-
51403784
);
c
=
md5_gg
(
c
,
d
,
a
,
b
,
x
[
i
+
7
],
14
,
1735328473
);
b
=
md5_gg
(
b
,
c
,
d
,
a
,
x
[
i
+
12
],
20
,
-
1926607734
);
a
=
md5_hh
(
a
,
b
,
c
,
d
,
x
[
i
+
5
],
4
,
-
378558
);
d
=
md5_hh
(
d
,
a
,
b
,
c
,
x
[
i
+
8
],
11
,
-
2022574463
);
c
=
md5_hh
(
c
,
d
,
a
,
b
,
x
[
i
+
11
],
16
,
1839030562
);
b
=
md5_hh
(
b
,
c
,
d
,
a
,
x
[
i
+
14
],
23
,
-
35309556
);
a
=
md5_hh
(
a
,
b
,
c
,
d
,
x
[
i
+
1
],
4
,
-
1530992060
);
d
=
md5_hh
(
d
,
a
,
b
,
c
,
x
[
i
+
4
],
11
,
1272893353
);
c
=
md5_hh
(
c
,
d
,
a
,
b
,
x
[
i
+
7
],
16
,
-
155497632
);
b
=
md5_hh
(
b
,
c
,
d
,
a
,
x
[
i
+
10
],
23
,
-
1094730640
);
a
=
md5_hh
(
a
,
b
,
c
,
d
,
x
[
i
+
13
],
4
,
681279174
);
d
=
md5_hh
(
d
,
a
,
b
,
c
,
x
[
i
+
0
],
11
,
-
358537222
);
c
=
md5_hh
(
c
,
d
,
a
,
b
,
x
[
i
+
3
],
16
,
-
722521979
);
b
=
md5_hh
(
b
,
c
,
d
,
a
,
x
[
i
+
6
],
23
,
76029189
);
a
=
md5_hh
(
a
,
b
,
c
,
d
,
x
[
i
+
9
],
4
,
-
640364487
);
d
=
md5_hh
(
d
,
a
,
b
,
c
,
x
[
i
+
12
],
11
,
-
421815835
);
c
=
md5_hh
(
c
,
d
,
a
,
b
,
x
[
i
+
15
],
16
,
530742520
);
b
=
md5_hh
(
b
,
c
,
d
,
a
,
x
[
i
+
2
],
23
,
-
995338651
);
a
=
md5_ii
(
a
,
b
,
c
,
d
,
x
[
i
+
0
],
6
,
-
198630844
);
d
=
md5_ii
(
d
,
a
,
b
,
c
,
x
[
i
+
7
],
10
,
1126891415
);
c
=
md5_ii
(
c
,
d
,
a
,
b
,
x
[
i
+
14
],
15
,
-
1416354905
);
b
=
md5_ii
(
b
,
c
,
d
,
a
,
x
[
i
+
5
],
21
,
-
57434055
);
a
=
md5_ii
(
a
,
b
,
c
,
d
,
x
[
i
+
12
],
6
,
1700485571
);
d
=
md5_ii
(
d
,
a
,
b
,
c
,
x
[
i
+
3
],
10
,
-
1894986606
);
c
=
md5_ii
(
c
,
d
,
a
,
b
,
x
[
i
+
10
],
15
,
-
1051523
);
b
=
md5_ii
(
b
,
c
,
d
,
a
,
x
[
i
+
1
],
21
,
-
2054922799
);
a
=
md5_ii
(
a
,
b
,
c
,
d
,
x
[
i
+
8
],
6
,
1873313359
);
d
=
md5_ii
(
d
,
a
,
b
,
c
,
x
[
i
+
15
],
10
,
-
30611744
);
c
=
md5_ii
(
c
,
d
,
a
,
b
,
x
[
i
+
6
],
15
,
-
1560198380
);
b
=
md5_ii
(
b
,
c
,
d
,
a
,
x
[
i
+
13
],
21
,
1309151649
);
a
=
md5_ii
(
a
,
b
,
c
,
d
,
x
[
i
+
4
],
6
,
-
145523070
);
d
=
md5_ii
(
d
,
a
,
b
,
c
,
x
[
i
+
11
],
10
,
-
1120210379
);
c
=
md5_ii
(
c
,
d
,
a
,
b
,
x
[
i
+
2
],
15
,
718787259
);
b
=
md5_ii
(
b
,
c
,
d
,
a
,
x
[
i
+
9
],
21
,
-
343485551
);
a
=
safe_add
(
a
,
olda
);
b
=
safe_add
(
b
,
oldb
);
c
=
safe_add
(
c
,
oldc
);
d
=
safe_add
(
d
,
oldd
);
}
return
Array
(
a
,
b
,
c
,
d
);
}
function
md5_cmn
(
q
,
a
,
b
,
x
,
s
,
t
)
{
return
safe_add
(
bit_rol
(
safe_add
(
safe_add
(
a
,
q
),
safe_add
(
x
,
t
)),
s
),
b
);
}
function
md5_ff
(
a
,
b
,
c
,
d
,
x
,
s
,
t
)
{
return
md5_cmn
((
b
&
c
)
|
((
~
b
)
&
d
),
a
,
b
,
x
,
s
,
t
);
}
function
md5_gg
(
a
,
b
,
c
,
d
,
x
,
s
,
t
)
{
return
md5_cmn
((
b
&
d
)
|
(
c
&
(
~
d
)),
a
,
b
,
x
,
s
,
t
);
}
function
md5_hh
(
a
,
b
,
c
,
d
,
x
,
s
,
t
)
{
return
md5_cmn
(
b
^
c
^
d
,
a
,
b
,
x
,
s
,
t
);
}
function
md5_ii
(
a
,
b
,
c
,
d
,
x
,
s
,
t
)
{
return
md5_cmn
(
c
^
(
b
|
(
~
d
)),
a
,
b
,
x
,
s
,
t
);
}
function
core_hmac_md5
(
key
,
data
)
{
var
bkey
=
str2binl
(
key
);
if
(
bkey
.
length
>
16
)
bkey
=
core_md5
(
bkey
,
key
.
length
*
chrsz
);
var
ipad
=
Array
(
16
),
opad
=
Array
(
16
);
for
(
var
i
=
0
;
i
<
16
;
i
++
)
{
ipad
[
i
]
=
bkey
[
i
]
^
0x36363636
;
opad
[
i
]
=
bkey
[
i
]
^
0x5C5C5C5C
;
}
var
hash
=
core_md5
(
ipad
.
concat
(
str2binl
(
data
)),
512
+
data
.
length
*
chrsz
);
return
core_md5
(
opad
.
concat
(
hash
),
512
+
128
);
}
function
safe_add
(
x
,
y
)
{
var
lsw
=
(
x
&
0xFFFF
)
+
(
y
&
0xFFFF
);
var
msw
=
(
x
>>
16
)
+
(
y
>>
16
)
+
(
lsw
>>
16
);
return
(
msw
<<
16
)
|
(
lsw
&
0xFFFF
);
}
function
bit_rol
(
num
,
cnt
)
{
return
(
num
<<
cnt
)
|
(
num
>>>
(
32
-
cnt
));
}
const
CryptoJS
=
require
(
"crypto-js"
);
function
b
(
e
,
n
,
t
)
{
var
e
=
CryptoJS
.
enc
.
Utf8
.
parse
(
e
)
,
n
=
CryptoJS
.
enc
.
Utf8
.
parse
(
n
)
,
a
=
CryptoJS
.
AES
.
decrypt
(
t
,
e
,
{
iv
:
n
,
mode
:
CryptoJS
.
mode
.
CBC
,
padding
:
CryptoJS
.
pad
.
Pkcs7
});
return
a
.
toString
(
CryptoJS
.
enc
.
Utf8
)
}
e
=
'EB444973714E4A40876CE66BE45D5930'
n
=
'B5A8904209931867'
data
=
"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"
// console.log(b(e, n, data))
function
str2binl
(
str
)
{
var
bin
=
Array
();
var
mask
=
(
1
<<
chrsz
)
-
1
;
for
(
var
i
=
0
;
i
<
str
.
length
*
chrsz
;
i
+=
chrsz
)
bin
[
i
>>
5
]
|=
(
str
.
charCodeAt
(
i
/
chrsz
)
&
mask
)
<<
(
i
%
32
);
return
bin
;
function
d
(
t
)
{
for
(
var
e
in
t
)
""
!==
t
[
e
]
&&
void
0
!==
t
[
e
]
||
delete
t
[
e
];
var
n
=
"B3978D054A72A7002063637CCDF6B2E5"
+
l
(
t
);
return
CryptoJS
.
MD5
(
n
).
toString
()
}
function
binl2hex
(
binarray
)
{
var
hex_tab
=
hexcase
?
"0123456789ABCDEF"
:
"0123456789abcdef"
;
var
str
=
""
;
for
(
var
i
=
0
;
i
<
binarray
.
length
*
4
;
i
++
)
{
str
+=
hex_tab
.
charAt
((
binarray
[
i
>>
2
]
>>
((
i
%
4
)
*
8
+
4
))
&
0xF
)
+
hex_tab
.
charAt
((
binarray
[
i
>>
2
]
>>
((
i
%
4
)
*
8
))
&
0xF
);
}
return
str
;
function
l
(
t
)
{
for
(
var
e
=
[
"cid"
,
"ts"
,
"type"
],
n
=
""
,
a
=
0
;
a
<
e
.
length
;
a
++
)
if
(
void
0
!==
t
[
e
[
a
]])
if
(
t
[
e
[
a
]]
&&
t
[
e
[
a
]]
instanceof
Object
||
t
[
e
[
a
]]
instanceof
Array
)
{
var
i
=
JSON
.
stringify
(
t
[
e
[
a
]]);
n
+=
e
[
a
]
+
i
}
else
n
+=
e
[
a
]
+
t
[
e
[
a
]];
return
n
}
function
binl2b64
(
binarray
)
{
var
tab
=
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
;
var
str
=
""
;
for
(
var
i
=
0
;
i
<
binarray
.
length
*
4
;
i
+=
3
)
{
var
triplet
=
(((
binarray
[
i
>>
2
]
>>
8
*
(
i
%
4
))
&
0xFF
)
<<
16
)
|
(((
binarray
[
i
+
1
>>
2
]
>>
8
*
((
i
+
1
)
%
4
))
&
0xFF
)
<<
8
)
|
((
binarray
[
i
+
2
>>
2
]
>>
8
*
((
i
+
2
)
%
4
))
&
0xFF
);
for
(
var
j
=
0
;
j
<
4
;
j
++
)
{
if
(
i
*
8
+
j
*
6
>
binarray
.
length
*
32
)
str
+=
b64pad
;
else
str
+=
tab
.
charAt
((
triplet
>>
6
*
(
3
-
j
))
&
0x3F
);
}
}
return
str
;
text
=
{
"ts"
:
1708677630860
,
"cid"
:
"250291"
,
"type"
:
"GCJS"
}
id
=
"G6X2gZnetpQ%3d"
ts
=
"1681200808213"
token
=
hex_md5
(
"3637CB36B2E54A72A7002978D0506CDF"
+
"id"
+
id
+
"ts"
+
ts
).
toLocaleLowerCase
()
console
.
log
(
token
)
// data="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"
//
// console.log(token)
//
// const CryptoJS = require("crypto-js");
//
// function b(e, n, t) {
// var e = CryptoJS.enc.Utf8.parse(e)
// , n = CryptoJS.enc.Utf8.parse(n)
// , a = CryptoJS.AES.decrypt(t, e, {
// iv: n,
// mode: CryptoJS.mode.CBC,
// padding: CryptoJS.pad.Pkcs7
// });
// return a.toString(CryptoJS.enc.Utf8)
// }
// e = 'BE45D593014E4A4EB4449737660876CE'
// n = 'A8909931867B0425'
// console.log(b(e, n, data))
console
.
log
(
d
(
text
))
\ No newline at end of file
js-py/福建省公共资源交易电子公共平台服务.py
View file @
89aa2f95
#coding=utf-8
import
execjs
#coding=utf-8
import
base64
import
execjs
import
requests
import
json
import
hashlib
import
time
import
base64
from
Crypto.Cipher
import
AES
messagetext
=
"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"
BLOCK_SIZE
=
16
# Bytes
pad
=
lambda
s
:
s
+
(
BLOCK_SIZE
-
len
(
s
)
%
BLOCK_SIZE
)
*
\
chr
(
BLOCK_SIZE
-
len
(
s
)
%
BLOCK_SIZE
)
unpad
=
lambda
s
:
s
[:
-
ord
(
s
[
len
(
s
)
-
1
:])]
vi
=
'A8909931867B0425'
key
=
'BE45D593014E4A4EB4449737660876CE'
def
AES_Decrypt
(
key
,
data
):
vi
=
'B5A8904209931867'
data
=
data
.
encode
(
'utf8'
)
encodebytes
=
base64
.
decodebytes
(
data
)
# 将加密数据转换位bytes类型数据
cipher
=
AES
.
new
(
key
.
encode
(
'utf8'
),
AES
.
MODE_CBC
,
vi
.
encode
(
'utf8'
))
text_decrypted
=
cipher
.
decrypt
(
encodebytes
)
# 去补位
unpad
=
lambda
s
:
s
[
0
:
-
s
[
-
1
]]
text_decrypted
=
unpad
(
text_decrypted
)
# 去补位
text_decrypted
=
text_decrypted
.
decode
(
'utf8'
)
return
text_decrypted
print
(
AES_Decrypt
(
key
,
messagetext
))
# import binascii
# from Crypto.Cipher import AES
#
# class AESCipher:
# def __init__(self, key, mode):
# self.key = key
# self.mode = mode
#
# def encrypt(self, text):
# text = text.encode('utf-8')
# cryptor = AES.new(self.key, self.mode, b'A8909931867B0425')
# length = 16
# count = len(text)
# padding = length - (count % length)
# text += bytes([padding]) * padding
# ciphertext = cryptor.encrypt(text)
# return binascii.b2a_base64(ciphertext).rstrip().decode('utf-8')
#
# def decrypt(self, text):
# text = binascii.a2b_base64(text.encode('utf-8'))
# cryptor = AES.new(self.key, self.mode, b'A8909931867B0425')
# plaintext = cryptor.decrypt(text)
# padding = plaintext[-1]
# if padding < 1 or padding > 16:
# return None
# plaintext = plaintext[:-padding]
# return plaintext.decode('utf-8')
#
# key = b'BE45D593014E4A4EB4449737660876CE'
# mode = AES.MODE_CBC
# cipher = AESCipher(key, mode)
#
# # 加密
# plaintext = 'hello'
# ciphertext = cipher.encrypt(plaintext)
# print(ciphertext) # 输出:gjKdyI6/o3U6gLlT6jX2hQ==
#
# # 解密
# plaintext = cipher.decrypt(messagetext)
# print(plaintext) # 输出:Hello, world!
\ No newline at end of file
# yy="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"
key
=
'EB444973714E4A40876CE66BE45D5930'
timestamp
=
int
(
round
(
time
.
time
()
*
1000
))
sgin_text
=
"B3978D054A72A7002063637CCDF6B2E5cid250291ts"
+
str
(
timestamp
)
+
"typeGCJS"
sgin
=
hashlib
.
md5
(
sgin_text
.
encode
())
.
hexdigest
()
headers
=
{
'User-Agent'
:
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36'
,
'portal-sign'
:
sgin
,
}
json_data
=
{
'cid'
:
'250291'
,
'type'
:
'GCJS'
,
'ts'
:
timestamp
,
}
response
=
requests
.
post
(
'https://ggzyfw.fj.gov.cn/FwPortalApi/Trade/TradeInfoDetail'
,
headers
=
headers
,
json
=
json_data
)
text
=
response
.
json
()
.
get
(
"Data"
)
print
(
AES_Decrypt
(
key
,
text
))
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment