Update hyjk.js

This commit is contained in:
smallfawn
2025-02-18 10:47:17 +08:00
parent 9f16b1000f
commit addc791b15

27
hyjk.js
View File

@@ -152,9 +152,11 @@ class Task {
} }
encrypt(body) { encrypt(body) {
let sign = getSign(body)
let timestamp = new Date().getTime()
global['window'] = {} global['window'] = {}
global['navigator'] = {} global['navigator'] = {}
const JSEncrypt = require("encryptlong") const JSEncrypt = require("encryptlong")
const JsRsaSign = require("jsrsasign") const JsRsaSign = require("jsrsasign")
const PUBLIC_KEY = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCiBksv2xaOJdSWblaTQl93HI393gYHqKFs89EIFBWYSmYSV+z8XXzMO/Xyo8EeWRpAjT5TuBf0wN467aBx3nsDfJd7e3+txBS7nf+S7Nyjnxx2J5AKPWx1gVmr/OF3aWqxg+DPCB7avakhj+p0QjoJ7eMqgJl/HSX2Kfb6/O3J9wIDAQAB"; const PUBLIC_KEY = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCiBksv2xaOJdSWblaTQl93HI393gYHqKFs89EIFBWYSmYSV+z8XXzMO/Xyo8EeWRpAjT5TuBf0wN467aBx3nsDfJd7e3+txBS7nf+S7Nyjnxx2J5AKPWx1gVmr/OF3aWqxg+DPCB7avakhj+p0QjoJ7eMqgJl/HSX2Kfb6/O3J9wIDAQAB";
@@ -165,7 +167,7 @@ class Task {
const JAVA_PRIVATE_KEY = "MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAM1ClLhl4dGIg8Uh1mC6lKFMcWUY6oWRPpcSoHK9aq3YG8ujdr5h/PIkc5fJ9fjU69siS4hrJy7FT3DtEcjV7sXc7sij5fGdyPJTcZH5p7YMS0tobej+u2k40XmrWNM39Km7gYpeyOEes/3HExOEsXrXfg0oDJBl+86azSBLTObHAgMBAAECgYA08JI5CRX4G/SYeIS5SAYjn/qzL3z1XCO/hS9ayJ3mHpH0sMFkkxNRRLOHl7BYMFpwl2TR14kwl/VIU+y9VugRK6Se/gdJ/jwGiMdVkO6tGD7s8TwLcgNjAVbwpZCq40h8dQazzyIsPxyww4AP9fQlo5x3eY9v8icw+U58fj4FcQJBAPk4PPCy54ZHMqSTl4E1z+QzZ51z07PFIbGsT/oAg9GOwFjrPjOTQDEPp3cBeAlKmWdUVAjdGYExwuCw4EkG/XkCQQDS2Cx09pwNwMWIN+u3CVneECXS3iUiRPGJkbliFczwjByk3DnBMW15wGNVtJfsM7YFOIir+hW+QfbCKSBjxTY/AkEArPam9LZ1kO/g6e+0+mwKeGpkwxYcG2v5UoIwj2XEFrBoNk4twUW1C1e99g4C7Q/lH52bJPuuM8gBZEfdoVFEoQJBALZ4CPlsVx973jeGFcPBHvoURXeZcs+WlOY2rBYbwdHHoB54zK7KZPECM7V/Zh8vnW4lP/p9owWVtsTPrM1LZicCQDhgvSmpBy0QoUI+wPS9l+YYuLc2loGoWU97RiFbgKqXBexnSg4UHfU8Ot6N4VbIWEhOZV27P0ktsI3UfjGNS6s=" const JAVA_PRIVATE_KEY = "MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAM1ClLhl4dGIg8Uh1mC6lKFMcWUY6oWRPpcSoHK9aq3YG8ujdr5h/PIkc5fJ9fjU69siS4hrJy7FT3DtEcjV7sXc7sij5fGdyPJTcZH5p7YMS0tobej+u2k40XmrWNM39Km7gYpeyOEes/3HExOEsXrXfg0oDJBl+86azSBLTObHAgMBAAECgYA08JI5CRX4G/SYeIS5SAYjn/qzL3z1XCO/hS9ayJ3mHpH0sMFkkxNRRLOHl7BYMFpwl2TR14kwl/VIU+y9VugRK6Se/gdJ/jwGiMdVkO6tGD7s8TwLcgNjAVbwpZCq40h8dQazzyIsPxyww4AP9fQlo5x3eY9v8icw+U58fj4FcQJBAPk4PPCy54ZHMqSTl4E1z+QzZ51z07PFIbGsT/oAg9GOwFjrPjOTQDEPp3cBeAlKmWdUVAjdGYExwuCw4EkG/XkCQQDS2Cx09pwNwMWIN+u3CVneECXS3iUiRPGJkbliFczwjByk3DnBMW15wGNVtJfsM7YFOIir+hW+QfbCKSBjxTY/AkEArPam9LZ1kO/g6e+0+mwKeGpkwxYcG2v5UoIwj2XEFrBoNk4twUW1C1e99g4C7Q/lH52bJPuuM8gBZEfdoVFEoQJBALZ4CPlsVx973jeGFcPBHvoURXeZcs+WlOY2rBYbwdHHoB54zK7KZPECM7V/Zh8vnW4lP/p9owWVtsTPrM1LZicCQDhgvSmpBy0QoUI+wPS9l+YYuLc2loGoWU97RiFbgKqXBexnSg4UHfU8Ot6N4VbIWEhOZV27P0ktsI3UfjGNS6s="
// 生成随机串 // 生成随机串
function generateRandomString(length) { function generateRandomString(length) {
var chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; // 包含所有字母和数字的字符集合 var chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; // 包含所有字母和数字的字符集合
var result = ''; var result = '';
@@ -179,15 +181,15 @@ class Task {
return result; return result;
} }
// 参数字典表排序 // 参数字典表排序
function sortedKeys(obj){ function sortedKeys(obj) {
let keys = Object.keys(obj).sort(); let keys = Object.keys(obj).sort();
let res = {} let res = {}
keys.forEach(key=>{ keys.forEach(key => {
res[key] = obj[key] res[key] = obj[key]
}) })
return res return res
} }
function generateRsaKeyWithPKCS8() { function generateRsaKeyWithPKCS8() {
const keyPair = JsRsaSign.KEYUTIL.generateKeypair("RSA", 1024); const keyPair = JsRsaSign.KEYUTIL.generateKeypair("RSA", 1024);
const privateKey = JsRsaSign.KEYUTIL.getPEM(keyPair.prvKeyObj, "PKCS8PRV"); const privateKey = JsRsaSign.KEYUTIL.getPEM(keyPair.prvKeyObj, "PKCS8PRV");
const publicKey = JsRsaSign.KEYUTIL.getPEM(keyPair.pubKeyObj); const publicKey = JsRsaSign.KEYUTIL.getPEM(keyPair.pubKeyObj);
@@ -195,7 +197,7 @@ class Task {
} }
const { privateKey, publicKey } = generateRsaKeyWithPKCS8() const { privateKey, publicKey } = generateRsaKeyWithPKCS8()
function objToStr(data) { function objToStr(data) {
let str = "" let str = ""
for (let i in data) { for (let i in data) {
str += `${i}=${data[i]}&` str += `${i}=${data[i]}&`
@@ -204,7 +206,7 @@ class Task {
return str return str
} }
// 生成签名 // 生成签名
function getSign(data) { function getSign(data) {
const signature = new JsRsaSign.KJUR.crypto.Signature({ const signature = new JsRsaSign.KJUR.crypto.Signature({
alg: "SHA1withRSA", alg: "SHA1withRSA",
}); });
@@ -221,19 +223,22 @@ class Task {
} }
// 生成加密 // 生成加密
function entryData(data) { function entryData(data) {
let encryptor = getKey(); let encryptor = getKey();
let str = objToStr(data) let str = objToStr(data)
return encryptor.encryptLong(str); // 调用封装的方法 return encryptor.encryptLong(str); // 调用封装的方法
} }
// 解密 // 解密
function decrypt(data) { function decrypt(data) {
const encryptor = new JSEncrypt() const encryptor = new JSEncrypt()
encryptor.setPrivateKey(PRIVATE_KEY) encryptor.setPrivateKey(PRIVATE_KEY)
return encryptor.decryptLong(data) return encryptor.decryptLong(data)
} }
return getSign(body) return entryData({
sign: sign,
timestamp: timestamp
})
//通过抓包得到加密JS网址https://www.heyejk.com/game/js/app.87d7f243.js 代码很多 慢慢补环境即可 //通过抓包得到加密JS网址https://www.heyejk.com/game/js/app.87d7f243.js 代码很多 慢慢补环境即可
//不理解为什么弄两个加密 烦死了 //不理解为什么弄两个加密 烦死了
//smallfawn 2024 / 3 / 23 22.11 //smallfawn 2024 / 3 / 23 22.11
@@ -310,6 +315,8 @@ class Task {
$.log(`✅账号[${this.index}] 领取水滴成功 当前水滴[${result.result.kettleWater}]💧🎉`) $.log(`✅账号[${this.index}] 领取水滴成功 当前水滴[${result.result.kettleWater}]💧🎉`)
} else { } else {
$.log(`❌账号[${this.index}] 领取水滴失败`); $.log(`❌账号[${this.index}] 领取水滴失败`);
console.log(result);
} }
} catch (e) { } catch (e) {
console.log(e); console.log(e);