吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 733|回复: 5
收起左侧

[已解决] 【已解决】web 逆向求助

[复制链接]
dmvip 发表于 2025-2-24 21:58
本帖最后由 dmvip 于 2025-2-24 23:46 编辑

【已解决】
感谢楼下大佬

求大佬们帮忙看看感谢

下面是js代码:
[Java] 纯文本查看 复制代码
1
2
3
4
5
6
7
8
9
var raw_key = [82, 114, 118, 51, 113, 70, 108, 86, 73, 69, 73, 110, 111, 111, 99, 119];
var encrypted = "e4cbd62f573b7cbb405ec661ab50f9ed3c374c8dfa212251062a2c51ce5d00fa8fc0388631d20e49c71c75ceeb5c494bca4fe0dbadb841302cb35f840635c574a643e2c7ea2a3d601348bb71060b312b9e88745a251f896a0a2712bb9e4f53cadef48230b24e284827f025eea483a42eab331e6920b0f53317ec90a50b11335ac08940e25a42bf60d86d1674a63b204676e20e55f75993a163fc43353446ec9b9db227d3368e26152bc586bd2500c577f2ace8eb184cf95c64121ae6b540c4bc88d15df021798fe9d79b90b097e8c6b3967a21a763c50aecc144981d00f9e9fdf991d01b64d84fe1672c4a8894c7dbb72c1b927e98f99c6d0b7d9d633d76cf596a928f0e199840b0829cf68bc39f8ea6d139fd5fe83d9bcc7a5703f957f637b638701414e5b2562c5af7d82c41e12ff1a6782c5728e692fae7f7083a80d9df519cb8ee75d2a114fd626927d3b968ba0f35636fa53cdfad0556929afe63ffb50b1277f5d177a6e4a50a809cb2a45553561b92f6aa782835b9a9ed392c301ed9b6171165b64a8437b6c40086a08223afa8dc7af59099068b052214dc3b892dff2d9002f8077df8e062bdc314551d06d3adcb392756507f99a22cd3979697ff654882d48a2d5699b94bdb420d5dc00726e06082e0aa2e4ea5fea8235127c4f428ec0d26ad3bdf065e8f42464753718c7b8725af2fd8287b53abe4b0539a1cecc312279ee4042360695bd4dbefce33a9464cc9a4718f77f606bd3ec9e6868e0f7ccc8c836841bc377cabd232398ce2ff99770247fdd08bf145312eb5b14bd81a0d960e73cb3521c0ac3d6317c9e216fec5c3ca087b500f7145498f5e49c5cdfb28b3b55ad75588526d0d7554f5b0158130c526fbdb90e97c34c185e0998b329dcf515f7b36098f85dd3bc3106efe4febcb43bd469fae16ef86eb88e83835b4dab0159273f34f11619db4a1cb32b8855eb90c69da2d733a9c03a16209e652a9f9b6cfb16f7df295ef3703b3d55e6c1c78526a396281218084396e08cfbd42056131df8bbe5f192e0a2a969efe7b837ffa57580618805351e9cf30583edaca1dc70aee30b794174a9495c9db5b173ff26cc166c1308e1e2bcbab6faabaa7962370589cf791156bcd6d78c972b6668c689f42afd1fd8674549823b04e2339fe5e78063e49ae9cb3642bdc35b98153626247b9a9c141dbfe5fbedd2fbb79825eb0f239b0edbba66affa59440a3b794915961cfd25d5b861ab67ca1b77e4878c42d8e1007da0d12ff006dcca51ced022b87fd4c31949dbf6ca58b0c51567feb4b8e9467c94672c4ed3749331d924103fa30efa58788911bcc7d066ff3fabb083bc468d06eb0081cefa247ecda4d1cb3e3f18fe85a19a26e48a632334878b811b78b0033f72c0450bc09179814adcb387fc12304b7b24dac27d5c4268f9af8ea96817c2c1394a959379d39ac3c216299f5ccd60a3cc40f259190702ea5d7ca49fde77236dbf8681dda009221ee2b36708cfe68cad7b5a2aa0edaae9fbe810a8ba557e0d72e222dddcfe085ba74b03adf307f064d36af5e8046059303fb6a19f1d21e0af488301095eb8e873ca8c4e6a97d6257ed04b4355c7e29f47b124bf2b54d29bcfe7e75414ceca6306eceff6d6d6f8ed319756531937c2e5297cd1eb1dc0d0be905ab8227c2dfcaa82f0bbe19cf278e07299fca4f302126950b84085c37789c070776e9af85ad837c2040bd20fa89284a72cb2f1358dae1fd1f03d422d35adcfa041ded739acb9b912513c0a441a479e6e9df8796f4044333e63bdf4e29ff1d5204e9cf66047980a50b97fd131adbac60c5a2c114e5d69eb937388f8432d416d7bd4518187e9f91e1dbcae479bf4f5a0b661c3838957d7110f69938f3f5c155ee3196c5c8d594e24c0c2be68df3cab5b34f28d6f3ff9e3c78c8e7dbc21d181fca3b24fcf9006bf8f7e5e798a2df3e3455d9274ef07e5dc94be331479ae3988812acc8d3b3383bb891d8a672ea1857c4ac4095dd4ab8ca3f08967e9bca3e0976afae1c5580a70486f81918bb82d2638253dbbfd9b1987969ffdda42b565f3451e58a69253777c449cb9d7777d4fefdcd52fed5dfac9b138e8b1f9fe091b4fdf21bcda328b9e0f7928196b98145d85f040da0095d13447df78d4f178cd62d391533db21211d8c1a07b173be846e0460cf6da93d8e46b403c85d1690a03dd6286df4bc5cfcb9998b816022c75c531fb89e5500466aa9ed211c7d435f216e0cd45daaf56e8715b6d4f9d2f500346315be67f54c953b6027264f91cff35be110322b9718afb14c3cf4a25aeaf38fed64111fa33608eb7aca11704dd2304908bc3df850181799e793cc6a0074718f14c57c5b8730a5010f45e48c6a881f8e0e3efd975c57e2f3bc6548521ccbd823399979ffd064a040b702bcd90bb6fcc45b9ca7fa518ec0bc5bd9d570b333472dd87221cac00a87d23275c800cb6ce08c5ee10f9020f9821a0ef472dba774410a5bf2ced6c8bcc5f9ad37ca82322a595d3f7da752e7a38ff24f12a70729b7d01a90c3ebc24698ae32f7ae162f034d7f042efe6237caa582f5a5ba2759f8b37db439b913db09609caae69e9ae2f28e449f1716e7f3111feb17cf6af781845bb61a9be89f8637dfe37b567735103930051152c329b7d12f705e7c5f8422f304d5d14959a77c64e5559df552b904538865952c04f4aa3f31d8b5d71430e6d1b6ea18ddc363f59c4df7b2fc6f43ffd7621c36a410ae2f3166b5f54eb0dd787f72855aad134e21fc1fc92cb7d93d7bfff05045d469b092f168127e93c10094aa70edabd640f44553415d5aeb8d0a69b2a1c213dca235d5054a469bb25f25db4659bdba0f2d73fa6af0bf8f1d42863c592f214c851115c179f6449a8d9437b1c26b01c3e64938539d84342fc1f7607daa3cb21218cbe2a0394c9622091880a61b13f278b6269153a5d4d5e78d9b030933aeeab7742ab4129c93ed970eb822ad35ac7204bd13e9b3526b081a9c4c6a10481bcd02f8e1f16c789670c175cf3ace050d68a3dec7e9c971ff0cfefed18f7ef58f70293d9444f39c9fdb314c0dc379c0f815382df9dcf71f5867409d18d7e7ecf490c89913ef9bc4decc4278d8087295004830b3a26319c42b9b047561a12064879e91aeaa2785639ac10fd916135dc49b875ecf9d09136c492f7f22ba2ed44df0892a170f05f2337592144e37fde780d29a6917d21499c9fa668735d908716e621edf5c6db9eaad5a83aef8f04bcc2130b7c71e4714a3d2739a8b9ace4c0a37a0dcf38d127d14b508ee3220e6016cd2f0db611d28cfd6def6d02b92c041a8765d67e30db07ab1912675d3a1444a8fe317acc4d94e10fa8135f96042f0ce043fbee0cd94a689e39db4896f63c9688645e1ea652983ad907cc4550aca907e76013fd79b712c4e70b891e05969a78e94184e8eff5f719335cce24e45e059a660d1b3609ee67cf0231b59a5caf7895376459b9cda0cb7a7f9686f7e68130a58b83b6cd8185e83142fb6dae69e900819f39e0eeb7af54fe5eadf44dade658d05059e74539b3adc27b5eb879e6af72aaef527f6dfb3e52689b76f6605d0b74dc11fcd7641023cff5298a949d1b22677817a80e381e0e71579a335dbae3158d99f6499a1c8168d3841626de30ceaf7bc6f96ff268f3896b3d7954c26a9f819495803f767c782a0ab0774e4ceae8abeb7583d42d44507e74a6986bc6597219b4228563943ce2c86c59b260cea14c7fa29c699262852c795d307fedad268a0c4bdc9a96a51f8dff7e7c32fa5c6bb1f5bdcadba53bf16208fdc0ba4ef5a4f964a9a7b1195873b166a28629e40339d46e0192dbff36711cd9884c9e2928399819fe4f2c6a1196d8fe7888496146a91b02e056c9adc6325b9fc10f523bb57a0858b1e5bc568117624309e12fcaec519a68b862112030a8b7f140ff6df39e41741acbf9b75e94b520ad191a23f2916295a98caa767d4cb6364947c176d599601ce362fbe840f87816395f71965b2ef41ad93e37a433666dd2ebc1688d424154eadbd932eaeeafaa5de06fd928475aa057bde7c0430175ffe1a20f677e682b8974dc4ef5300775b71d311baa648047120d4d76c0dd0a54b2973b253ee44c9ff2584ddc92b734f40dfd32e33064c2deb125f0c4a9a66853367a665cd344406418b3ac46963d6b92166d6782a5c8e4535133d83693fc2992101ff7de61dc5be1a9db36be0b57f18b5625bbb250a78b918e00b3dd6427cf4a4dbcbaa06019dcf1cbe0f6c02b763fdabd7d19995140240ffa63bb8f704a14df1b5cbcc3e860f3b6aeff52cd525eb3766bd1c2c788c3b429af602d4f38383af3782b3f8fc7b7c96d3696166144897fe63c0919c41b7970f4d766637d5ad340b2eb126bd00133c9b9ea4aef8eaae3ed6ead9bd4230da01eb0350be297676806bf91cc68c43c3e1149dc604710fd0dac263752e5a8982d66f4cb695cd45c566e7972ef3ec8c4bf2730020546f4de155e2f2b4e8d42c7ac8723ad6140f7fea3ba1ab8746a0c596ee29794a4b3452f641d8c6b321cb5f08485de6a377e5e733eb25c1aef13c075787b79626afb21d976807ae51462b41ff4f1f2bbac56280dfd9c41d54c8307da10371a4e41495f50c87fedd8eaa2fd806d92eac49d4ed372e0f8cc9bf70ded15d5957d0a584716bf5a3cc517cf1d5c562a05ade85d3ecc95727538e1c2952bbc69c8203f5502e0c2353d1661c5486c9d73f78860cabe0faaf7bac93c3e226af42e4e94f9fdf154c9fd9b380f1b2b783d2bdc5a31c7f1e4e4ee087de8c93dc66ddf2e280f31bb6a405f4b86f7f3a30";
var iv = [49, 106, 104, 49, 57, 78, 70, 106, 79, 116, 102, 119, 84, 75, 73, 113];
var _0x4ae34c = forge[_0x14b7('0x19')][_0x14b7('0x15')](_0x14b7('0x0'), raw_key);
        _0x4ae34c[_0x14b7('0x1f')]({
            'iv': iv
        });
var _0x1302dc = new Uint8Array(encrypted['match'](/.{1,2}/g)[_0x14b7('0x9')](_0x5bafbe => parseInt(_0x5bafbe, 0x10)));
_0x4ae34c[_0x14b7('0x1e')](forge[_0x14b7('0xd')]['createBuffer'](_0x1302dc));


image.png


下面是我用Java 去解密发现乱码:
[Java] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import javax.crypto.BadPaddingException;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.NoSuchPaddingException;
import java.security.InvalidAlgorithmParameterException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
 
public class DecryptExample {
 
    public static void main(String[] args) {
        try {
            // 原始密钥和IV转换为字节数组
            byte[] rawKey = {82, 114, 118, 51, 113, 70, 108, 86, 73, 69, 73, 110, 111, 111, 99, 119};
            byte[] iv = {49, 106, 104, 49, 57, 78, 70, 106, 79, 116, 102, 119, 84, 75, 73, 113};
 
            // 加密字符串转换为字节数组
            String encryptedStr = "e4cbd62f573b7cbb405ec661ab50f9ed3c374c8dfa212251062a2c51ce5d00fa8fc0388631d20e49c71c75ceeb5c494bca4fe0dbadb841302cb35f840635c574a643e2c7ea2a3d601348bb71060b312b9e88745a251f896a0a2712bb9e4f53cadef48230b24e284827f025eea483a42eab331e6920b0f53317ec90a50b11335ac08940e25a42bf60d86d1674a63b204676e20e55f75993a163fc43353446ec9b9db227d3368e26152bc586bd2500c577f2ace8eb184cf95c64121ae6b540c4bc88d15df021798fe9d79b90b097e8c6b3967a21a763c50aecc144981d00f9e9fdf991d01b64d84fe1672c4a8894c7dbb72c1b927e98f99c6d0b7d9d633d76cf596a928f0e199840b0829cf68bc39f8ea6d139fd5fe83d9bcc7a5703f957f637b638701414e5b2562c5af7d82c41e12ff1a6782c5728e692fae7f7083a80d9df519cb8ee75d2a114fd626927d3b968ba0f35636fa53cdfad0556929afe63ffb50b1277f5d177a6e4a50a809cb2a45553561b92f6aa782835b9a9ed392c301ed9b6171165b64a8437b6c40086a08223afa8dc7af59099068b052214dc3b892dff2d9002f8077df8e062bdc314551d06d3adcb392756507f99a22cd3979697ff654882d48a2d5699b94bdb420d5dc00726e06082e0aa2e4ea5fea8235127c4f428ec0d26ad3bdf065e8f42464753718c7b8725af2fd8287b53abe4b0539a1cecc312279ee4042360695bd4dbefce33a9464cc9a4718f77f606bd3ec9e6868e0f7ccc8c836841bc377cabd232398ce2ff99770247fdd08bf145312eb5b14bd81a0d960e73cb3521c0ac3d6317c9e216fec5c3ca087b500f7145498f5e49c5cdfb28b3b55ad75588526d0d7554f5b0158130c526fbdb90e97c34c185e0998b329dcf515f7b36098f85dd3bc3106efe4febcb43bd469fae16ef86eb88e83835b4dab0159273f34f11619db4a1cb32b8855eb90c69da2d733a9c03a16209e652a9f9b6cfb16f7df295ef3703b3d55e6c1c78526a396281218084396e08cfbd42056131df8bbe5f192e0a2a969efe7b837ffa57580618805351e9cf30583edaca1dc70aee30b794174a9495c9db5b173ff26cc166c1308e1e2bcbab6faabaa7962370589cf791156bcd6d78c972b6668c689f42afd1fd8674549823b04e2339fe5e78063e49ae9cb3642bdc35b98153626247b9a9c141dbfe5fbedd2fbb79825eb0f239b0edbba66affa59440a3b794915961cfd25d5b861ab67ca1b77e4878c42d8e1007da0d12ff006dcca51ced022b87fd4c31949dbf6ca58b0c51567feb4b8e9467c94672c4ed3749331d924103fa30efa58788911bcc7d066ff3fabb083bc468d06eb0081cefa247ecda4d1cb3e3f18fe85a19a26e48a632334878b811b78b0033f72c0450bc09179814adcb387fc12304b7b24dac27d5c4268f9af8ea96817c2c1394a959379d39ac3c216299f5ccd60a3cc40f259190702ea5d7ca49fde77236dbf8681dda009221ee2b36708cfe68cad7b5a2aa0edaae9fbe810a8ba557e0d72e222dddcfe085ba74b03adf307f064d36af5e8046059303fb6a19f1d21e0af488301095eb8e873ca8c4e6a97d6257ed04b4355c7e29f47b124bf2b54d29bcfe7e75414ceca6306eceff6d6d6f8ed319756531937c2e5297cd1eb1dc0d0be905ab8227c2dfcaa82f0bbe19cf278e07299fca4f302126950b84085c37789c070776e9af85ad837c2040bd20fa89284a72cb2f1358dae1fd1f03d422d35adcfa041ded739acb9b912513c0a441a479e6e9df8796f4044333e63bdf4e29ff1d5204e9cf66047980a50b97fd131adbac60c5a2c114e5d69eb937388f8432d416d7bd4518187e9f91e1dbcae479bf4f5a0b661c3838957d7110f69938f3f5c155ee3196c5c8d594e24c0c2be68df3cab5b34f28d6f3ff9e3c78c8e7dbc21d181fca3b24fcf9006bf8f7e5e798a2df3e3455d9274ef07e5dc94be331479ae3988812acc8d3b3383bb891d8a672ea1857c4ac4095dd4ab8ca3f08967e9bca3e0976afae1c5580a70486f81918bb82d2638253dbbfd9b1987969ffdda42b565f3451e58a69253777c449cb9d7777d4fefdcd52fed5dfac9b138e8b1f9fe091b4fdf21bcda328b9e0f7928196b98145d85f040da0095d13447df78d4f178cd62d391533db21211d8c1a07b173be846e0460cf6da93d8e46b403c85d1690a03dd6286df4bc5cfcb9998b816022c75c531fb89e5500466aa9ed211c7d435f216e0cd45daaf56e8715b6d4f9d2f500346315be67f54c953b6027264f91cff35be110322b9718afb14c3cf4a25aeaf38fed64111fa33608eb7aca11704dd2304908bc3df850181799e793cc6a0074718f14c57c5b8730a5010f45e48c6a881f8e0e3efd975c57e2f3bc6548521ccbd823399979ffd064a040b702bcd90bb6fcc45b9ca7fa518ec0bc5bd9d570b333472dd87221cac00a87d23275c800cb6ce08c5ee10f9020f9821a0ef472dba774410a5bf2ced6c8bcc5f9ad37ca82322a595d3f7da752e7a38ff24f12a70729b7d01a90c3ebc24698ae32f7ae162f034d7f042efe6237caa582f5a5ba2759f8b37db439b913db09609caae69e9ae2f28e449f1716e7f3111feb17cf6af781845bb61a9be89f8637dfe37b567735103930051152c329b7d12f705e7c5f8422f304d5d14959a77c64e5559df552b904538865952c04f4aa3f31d8b5d71430e6d1b6ea18ddc363f59c4df7b2fc6f43ffd7621c36a410ae2f3166b5f54eb0dd787f72855aad134e21fc1fc92cb7d93d7bfff05045d469b092f168127e93c10094aa70edabd640f44553415d5aeb8d0a69b2a1c213dca235d5054a469bb25f25db4659bdba0f2d73fa6af0bf8f1d42863c592f214c851115c179f6449a8d9437b1c26b01c3e64938539d84342fc1f7607daa3cb21218cbe2a0394c9622091880a61b13f278b6269153a5d4d5e78d9b030933aeeab7742ab4129c93ed970eb822ad35ac7204bd13e9b3526b081a9c4c6a10481bcd02f8e1f16c789670c175cf3ace050d68a3dec7e9c971ff0cfefed18f7ef58f70293d9444f39c9fdb314c0dc379c0f815382df9dcf71f5867409d18d7e7ecf490c89913ef9bc4decc4278d8087295004830b3a26319c42b9b047561a12064879e91aeaa2785639ac10fd916135dc49b875ecf9d09136c492f7f22ba2ed44df0892a170f05f2337592144e37fde780d29a6917d21499c9fa668735d908716e621edf5c6db9eaad5a83aef8f04bcc2130b7c71e4714a3d2739a8b9ace4c0a37a0dcf38d127d14b508ee3220e6016cd2f0db611d28cfd6def6d02b92c041a8765d67e30db07ab1912675d3a1444a8fe317acc4d94e10fa8135f96042f0ce043fbee0cd94a689e39db4896f63c9688645e1ea652983ad907cc4550aca907e76013fd79b712c4e70b891e05969a78e94184e8eff5f719335cce24e45e059a660d1b3609ee67cf0231b59a5caf7895376459b9cda0cb7a7f9686f7e68130a58b83b6cd8185e83142fb6dae69e900819f39e0eeb7af54fe5eadf44dade658d05059e74539b3adc27b5eb879e6af72aaef527f6dfb3e52689b76f6605d0b74dc11fcd7641023cff5298a949d1b22677817a80e381e0e71579a335dbae3158d99f6499a1c8168d3841626de30ceaf7bc6f96ff268f3896b3d7954c26a9f819495803f767c782a0ab0774e4ceae8abeb7583d42d44507e74a6986bc6597219b4228563943ce2c86c59b260cea14c7fa29c699262852c795d307fedad268a0c4bdc9a96a51f8dff7e7c32fa5c6bb1f5bdcadba53bf16208fdc0ba4ef5a4f964a9a7b1195873b166a28629e40339d46e0192dbff36711cd9884c9e2928399819fe4f2c6a1196d8fe7888496146a91b02e056c9adc6325b9fc10f523bb57a0858b1e5bc568117624309e12fcaec519a68b862112030a8b7f140ff6df39e41741acbf9b75e94b520ad191a23f2916295a98caa767d4cb6364947c176d599601ce362fbe840f87816395f71965b2ef41ad93e37a433666dd2ebc1688d424154eadbd932eaeeafaa5de06fd928475aa057bde7c0430175ffe1a20f677e682b8974dc4ef5300775b71d311baa648047120d4d76c0dd0a54b2973b253ee44c9ff2584ddc92b734f40dfd32e33064c2deb125f0c4a9a66853367a665cd344406418b3ac46963d6b92166d6782a5c8e4535133d83693fc2992101ff7de61dc5be1a9db36be0b57f18b5625bbb250a78b918e00b3dd6427cf4a4dbcbaa06019dcf1cbe0f6c02b763fdabd7d19995140240ffa63bb8f704a14df1b5cbcc3e860f3b6aeff52cd525eb3766bd1c2c788c3b429af602d4f38383af3782b3f8fc7b7c96d3696166144897fe63c0919c41b7970f4d766637d5ad340b2eb126bd00133c9b9ea4aef8eaae3ed6ead9bd4230da01eb0350be297676806bf91cc68c43c3e1149dc604710fd0dac263752e5a8982d66f4cb695cd45c566e7972ef3ec8c4bf2730020546f4de155e2f2b4e8d42c7ac8723ad6140f7fea3ba1ab8746a0c596ee29794a4b3452f641d8c6b321cb5f08485de6a377e5e733eb25c1aef13c075787b79626afb21d976807ae51462b41ff4f1f2bbac56280dfd9c41d54c8307da10371a4e41495f50c87fedd8eaa2fd806d92eac49d4ed372e0f8cc9bf70ded15d5957d0a584716bf5a3cc517cf1d5c562a05ade85d3ecc95727538e1c2952bbc69c8203f5502e0c2353d1661c5486c9d73f78860cabe0faaf7bac93c3e226af42e4e94f9fdf154c9fd9b380f1b2b783d2bdc5a31c7f1e4e4ee087de8c93dc66ddf2e280f31bb6a405f4b86f7f3a30";
            byte[] encryptedData = convertToByteArray(encryptedStr);
            // 解密
            String decrypted = encrypt(encryptedData, rawKey, iv);
            System.out.println("Decrypted: " + decrypted);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
 
    public static String encrypt(byte[] encryptedData, byte[] key, byte[] iv) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, InvalidAlgorithmParameterException, IllegalBlockSizeException, BadPaddingException {
        SecretKeySpec secretKeySpec = new SecretKeySpec(key, "AES");
        IvParameterSpec ivParameterSpec = new IvParameterSpec(iv);
        Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
        cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec, ivParameterSpec);
        byte[] decryptedBytes = cipher.doFinal(encryptedData);
        return new String(decryptedBytes);
    }
 
 
    public static byte[] convertToByteArray(String encrypted) {
        // 定义正则表达式
        Pattern pattern = Pattern.compile(".{1,2}");
        Matcher matcher = pattern.matcher(encrypted);
 
        // 存储匹配到的子串
        List<String> matches = new ArrayList<>();
        while (matcher.find()) {
            matches.add(matcher.group());
        }
        // 将匹配到的子串转换为字节数组
        byte[] result = new byte[matches.size()];
        for (int i = 0; i < matches.size(); i++) {
            String hex = matches.get(i);
            result[i] = (byte) Integer.parseInt(hex, 16);
        }
        return result;
    }

解密乱码:
image.png




正常解密应该是这个样子:
[Asm] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
"<!DOCTYPE html>
<html>
 
<head>
    <title>&#230;μ&#8249;èˉ&#8226;</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><!-- IE&#229;&#8224;…&#230; &#184; &#229;&#188;o&#229;&#710;&#182;&#228;&#189;&#191;&#231;”¨&#230;&#339;?&#230;–°&#231;&#353;&#8222;&#229;&#188;&#8226;&#230;“&#381;&#230;&#184;2&#230;&#376;“&#231;&#189;‘é&#161;μ -->
    <meta name="renderer" content="webkit"> <!-- &#229;&#144;ˉ&#231;”¨360&#230;μ&#143;è§&#710;&#229;&#8482;¨&#231;&#353;&#8222;&#230;&#382;&#129;é?&#376;&#230;¨&#161;&#229;&#188;&#143;(webkit) -->
    <meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0 ,maximum-scale=1.0, user-scalable=no"><!-- &#230;‰&#8249;&#230;&#339;oH5&#229;…&#188;&#229;&#174;1&#230;¨&#161;&#229;&#188;&#143; -->
    <meta name="x5-fullscreen" content="true">
    <meta name="x5-page-mode" content="app"> <!-- X5  &#229;…¨&#229;±&#143;&#229;¤&#8222;&#231;&#144;&#8224; -->
    <meta name="full-screen" content="yes">
    <meta name="browsermode" content="application"> <!-- UC &#229;…¨&#229;±&#143;&#229;o”&#231;”¨&#230;¨&#161;&#229;&#188;&#143; -->
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" /> <!--  è&#8249;1&#230;&#382;&#339;&#229;…¨&#229;±&#143;&#229;o”&#231;”¨&#230;¨&#161;&#229;&#188;&#143; -->
    <link rel="shortcut icon" href="https://v.qq.com/favicon.ico" type="image/x-icon">
    <meta name="referrer" content="no-referrer">    <link rel="stylesheet" href="./style/css/mui-player.min.css">
    <link rel="stylesheet" href="./style/css/index.css">
    <link rel="stylesheet" href="./style/css/muiplayer.css">
    <script src="./style/js/jquery.min.js"></script>
    <script src="./style/js/mui-player.min.js"></script>
    <script src="./style/js/mui-player-desktop-plugin.min.js"></script>
    <script src="./style/js/mui-player-mobile-plugin.min.js"></script>
    <script src="./style/js/jquery.xctips.js"></script>
    <script src="./style/js/flv.min.js"></script>
    <script src="./style/js/hls.min.js"></script>
    <script src="./style/js/yanmdecode.js?v=31"></script>
    <script src="./style/js/setting.js?v=1"></script>
</head>
 
<body>
    <div id="loading" align="center"></div>
    <script type="text/javascript">
        var config = {
            "url": getrandom('txNP1KQrdHhOUDFLUXJodHRwcyUzQSUyRiUyRm1lZGlhLXNocGQtZnktcGVyc29uLnNoM29zcy5jdHl1bnhzLmNuJTJGUEVSU09OQ0xPVUQlMkY5YTBmMjVkNi1hZjcyLTRiN2QtOWU5NS05NjFhNDVkYzFjOWQubXA0JTNGeC1hbXotQ0xJRU5UVFlQRUlOJTNEUEMlMjZBV1NBY2Nlc3NLZXlJZCUzRDBMZzdkQXEzWmZIdmVQUDhES0VVJTI2eC1hbXotbGltaXRyYXRlJTNENTEyMDAlMjZyZXNwb25zZS1jb250ZW50LXR5cGUlM0R2aWRlbyUyRm1wNCUyNngtYW16LVVJRCUzRDMwMDAwMTAyNzU3OTMyMyUyNngtYW16LUFQUElEJTNEOTMwMDUlMjZyZXNwb25zZS1jb250ZW50LWRpc3Bvc2l0aW9uJTNEYXR0YWNobWVudCUyNTNCZmlsZW5hbWUlMjUzRCUyNTIyJTI1RTYlMjU4MCUyNThFJTI1RTYlMjU5NSUyNThDJTI1RTUlMjVBNSUyNUI5JTI1RTUlMjU4RCUyNTgzJTI1RTUlMjVBOCUyNTg3JTI1RTclMjU5OSUyNUJFJTI1RTUlMjVBQSUyNTlBMDEubXA0JTI1MjIlMjUzQmZpbGVuYW1lJTJBJTI1M0RVVEYtOCUyNTI3JTI1MjclMjUyNUU2JTI1MjU4MCUyNTI1OEUlMjUyNUU2JTI1MjU5NSUyNTI1OEMlMjUyNUU1JTI1MjVBNSUyNTI1QjklMjUyNUU1JTI1MjU4RCUyNTI1ODMlMjUyNUU1JTI1MjVBOCUyNTI1ODclMjUyNUU3JTI1MjU5OSUyNTI1QkUlMjUyNUU1JTI1MjVBQSUyNTI1OUEwMS5tcDQlMjZ4LWFtei1PUEVSSUQlM0QzMDAwMDEwMjc1ODIyMjElMjZ4LWFtei1DTElFTlRORVRXT1JLJTNEVU5LTk9XTiUyNngtYW16LUNMT1VEVFlQRUlOJTNERkFNSUxZJTI2U2lnbmF0dXJlJTNEVnVFNU9qV2lhNERlQ0M5eUthSUVOdnBsWHJnJTI1M0QlMjZFeHBpcmVzJTNEMTc0MDQwODM1MCUyNngtYW16LUZTSVpFJTNENTM3OTM5NzA4JTI2eC1hbXotVUZJRCUzRDkyMzY2MTE4MDAwNTkzMTM4MXR4TlAxS1Fy'),
            "vkey": "fbfbce9b445c6320ccf3bb21e006ecf4",
            "key": "fbfbce9b445c6320ccf3bb21e006ecf4",
            "next": "",
            "title": "",
            "tim": "fbfbce9b445c6320ccf3bb21e006ecf4",
        }
 
        player(config);
    </script>
</body>
 
</html>"

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

十万菠萝拍黄瓜 发表于 2025-2-24 23:17
AES-OFB模式
py代码:
 楼主| dmvip 发表于 2025-2-24 23:24

感谢回复,图片加载不出来,可以把代码贴出来吗, 我用AI 转java代码
十万菠萝拍黄瓜 发表于 2025-2-24 23:25
dmvip 发表于 2025-2-24 23:24
感谢回复,图片加载不出来,可以把代码贴出来吗, 我用AI 转java代码

[Python] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
from Crypto.Cipher import AES
 
raw_key = bytes([81, 86, 99, 48, 70, 86, 72, 90, 69, 48, 114, 80, 116, 81, 72, 76])
iv = bytes([86, 104, 48, 103, 79, 114, 119, 99, 89, 107, 71, 98, 97, 66, 55, 114])
encrypted = "4089eb615f2a26e95e360ca237b3894aaf47741b6a0542d3623bc2da0f0e1a57313b6d09e6130f9ac4bf73c38cd0215e8586a36e2f9576ec9751a0cff856eac26d571abe41f1e4ee51cf67773e8ad2722dda5a4a95cb978cd9d27ec2c31db8df890e7e7631fd10ffa20c38c0c80d6818c922ea91e61a57c9811242b60ee24b8be7d773b683efda5e35e760980562d9d537dcb490e771e8c83bc75bbc1d5bf177d0f481e14c2eae73cf4047627d9706431b925dae79e870e909cbad9d4b116f1bd055628774cad1d705c5090a4ad7cfae208df123317abf926b35e36584bad8797d181c4c6c42a1d7cdbffff92bfdaa5c90bcf11accdd4560ef13762778ce6607b292dc2358b10204927d7a9ff7568690362a732b11caa05d64ff7a86797c2c82aea28d780e3f20714cba5d788311a65291532e6ca745819a558e2018a6ca7556b018fa2371d715c0860500b7be8becde5158bf2dfba8fcaa51e1e8896c43183d6ac6eba20364496a1399106fdabdea6ed43d5d34b168619a9accdbca35dc776bc3adcda0c6f3b39d090a44cc18552e7d95d22344b131ba05c88db06775b537a030d43a9817220e985352f143dbc2b4a7e3cd2f4303242d89f123c9238a63b8189c3a2ba7f6d43839e0e361159668adf06b8e559ed35517e739f33c96960f98481c9eb45a483f2e4963040926d2b73ec84ff938155aad720ca4ec1f7aa0a192d2d29f86237b91ce9be39e5e5ff12f7ad2f93b5005fd39f5dc17a9e86ec02a98f1a35c22c90f989dbac0ae2316ab44ecea81011b771f98c7c6a3b505db8f11348444f176f1bcf1c755a934d360be97a568a85592d978de68ad70b82d1d230c8ddd560ffcabe3afc6b73a3acf38257a4a46b737ea1e619731a940d436bcc10ff0f9708988913d642df7c79db0513439162884e8fb1756a68434b073894f02a28ecc6facd66fd719c693631144d5a37a19d81dd49545611f8edacea26ac071955f0d7e7294797bcffa0713e7b2b78f6f3649b990f2c3367a9f175372098cdf9602002846503260f5168a72fe30d10ad84c26f75cba40645fbf6c1a33169522f3bd1db42546ef3a1719b717cf4fba6a49756fdd419779d0f329cf572208d19c5023a9df51d319d28968ce0f6fdbf6e131648ee30cdbd9afaafe629965278b09c9a096e9ef87621a5e713b6e02133befbd4f591c637d56435d500b8b6ce416a8b8f7dea5052fdbcad1b46270905925542653e6f9470b11f86cfd41e95c1cf85522415e5e180ce99b9ea3494ed29bad38cb18d07d7dc6b204b5fa51d0b1aac75dd1bfe875c3b59dae5eb407a73b89fb7b51839e90d310ae8b9ed12e24a5490f7b295efcb3f306cea2f1686d8229856643d07fc8672fcac9a7ca8037c60cbf3289a1a5856898ee6ffea91bad97a54ae17cb9d7c18a8efe634539bbaeb37296f76530f78fb8f7de3b97a8073e0b0f020bde9b4665ebdddd1b23537c03552ee6e941db4dd78e48f79965585c93271063762d3e4f8022750859912484a680ad632e2281665a6b4488ba9eb08f13c82a0381f0b6080164e2b9927453f0678b917c7ff881aed78b24979553ae8b7e3a2fb8dee167a5cbe4e3c5b4cde241f154ee9ebedf56b8301b7ca57639d65a4b9778f4dc124ed5d6a52cd490c2038c66cdbd8ccd3ff0b6819e115ca121de659a6bdd30584af5a7562ebf9eacc6dd82203c792003a50b41cfb5947500d04a77a19d8929d8f4fc5b62b57c18968a727c5565315a648fdd27af1aeffa0e88f737086003ab475fc2cd0f9319d0afbad21043712d027690dc7fd51d5b695288154d52e45ba24f5295719727fec315b0a8b52a625dbe45fe7f89e3c67cf120fc55c5997309577a7590450fb54644cc539a334eaafd4e6cfd34748a26dcc33b7c1a6f792269bd20e761b8c723ec42cd2680ebdfcf9f46cf1f31823910fc6262fbc83278a224b5ce889b6583c38e012c0b3e01f27172ae400b7b48543bfa716911d455067fca7f33fc627c713eb53a16a6f7cc32ffd649c89870f94cfca9e309104e4e9ceaf5f63debbb0eafed3a51058227042668cb30f5de29a4ad83903868d1d3d3f9b6308bc029a16bb43a93cbb82a6640338f03e64ca2df38e5cff7825efc88a2fec1a7e08f6d6dd43126a52c453642542d0edf31bd929fc05208f21686c20b057f9c86ea514e1685e9ed813acb78d638fbf2ebbbdd16576e76379ceaac2d4b36f7b2a90f02d18f56c6ec89adf690152dce4f80baf041ae0f9fb9621e867f53eefdf00ca383b4b3eec4610d5e9529d392c288d999057a4929e6123bd80ed82f8d513200a383c06fbb142c48157a03537127314f248232c425aee8d05ceba7fbea266e6f17aae1e8e3521f94ef758dac2c23b17ef327f87a9a1d7a46b5a9965b39c35960c30760c320c1af677af8a1462f64002fa413c531f1866b96654d34338f751bbd8f4861e6249d79caf78b8f7ca5542bcde0b46c73238d60c59378f67229f8c851c355e01a60a36b27a5c8b042f8824d8c3462fb0538858c2c33f7e19511a3c6453e109163b8fa828211ecb60d14407b917e0a67eb070ed1d311e51d12e79e646b1ea447ad133e5b1f17869653941fafd3fd34340a15ac59ae7f0973886c94a488a3e49a92ed32ddc4ac2a1022461330d3b4cfea4b7b85189a6d10671aa040c82d49e1035dc560208454c2ad009c019f7b0181ba9751e799b60c9e5d40ed38d0c502e95a91040e2d322ad5142e69a8ed68da2a7f06ea3708cdf4665c604db5ebab9dafac89e200e8185e65487e982a9ac23a2966395db0b53a5c223efaf0fe0793fe56de2cbbf21f61e7ba28e09a6dfe76fae84819fc197c064bc416b274ef088672da21bd15d80768336659d5d0828984d4255138a7ab7717903b203e3227625024b60fb40892199732755d894fa70c09d7fbae72ea527ecc6aec8ed42cb2d275599938aae1b9552087a6f480178c97891c26f5c3ddbe0ffe1e7adeb2f1cff8126dfab2857075cc807b9f04d1d1a9e94b89f6e3bd9fab000d6f87227c0d093ddf02e6dbeb5717d80678143cae4c8192b9971af69c8295281a55ae3d9c0890e1c293b9f49d53a70bfbbd07b42e8856aeedeaa2970e3015b681624c86598499e46cf15ccc0e0652852653c32297852522e1180e6f4f610c4fe7f6986653ef02a651678e7245a852c803273d0f17c87aa9b8cf60532d742676f649e2b5b906f0c00a0a689e00d7c972f947731f6b5ff6ca4f62cfcd1cb29a914b7b2f57cc3ed65e741c093b21e24c169da726a95c8ffaa1c4932c332fbfc4c57a11b54f651cb7f58b86f245d2704b818284ab35948ca1a7731b1bac81aa6465632e0b3c9f2e6b15733d6cb826317645bbe8713ce4fae050e4428b00d0a08a9af283637fa15c095820b9502436d5c0561935fbc5b83931e428da829becbf8e2c2bcc31e23823fa93f228fee57744d0d21ac6419e1e131cf23c8ddc4d5eb088b329f2dc78d767e7466360fc5fd119efea809735e09e404b078eda4d04719fecf49e7ae402c0bfc017f5a58cf1079068684cacec939579885fa63034b2b5164b3a96f149dc57184f8dfa8ca119c88fa6e524a5e55a33d66d3b0105c4b248ee0c0c01b8b44a88559186c51f8004415a8b316f703b25551a95a9d46ffeb44d2bd42b3947a44fccdb03989aeccdcd8b9395026d7f175fba19ac6b1ef6107b24fc3bc7a3ba78cbb7d6dd4c5fb39a65503b457c73ff43f6753587a545f37237d1215046889cc4094c6d3ec4b6026966ee8823bb383c69251986835e14087547557fe0b42354d0c50d4318ff6bfc3be17fe48f7242ad6b41fe5f058fb75c2c1880c757e3200e077c47a349526ce65e377e4c5bfe09e1ffb3cc4a488563a153667c3c8eddbab8a3faa037f0091d4f669d905d16ed0879581994364015bbd8b0a8ea235ca3a9fc24989a7fa068063a0c417cff6ccac25396775b9ec6de08a0602c4134952ddfddc805a8db5684ff446dbce108e284f807cac52f9dd121d402c6f9ff1a2611cdf0dffe0e2469bfe8be92e7f66c342540885c981385529af2b5565e4cd1c4d25be8532f1cfc7031f2db7b9a90be3cee53939a6ce693fedbe873f3134817ea8083d70467a0218ba0dbd03a66b279b842f6fad11ce41b8f78c7410ab1b77f602dbacdc969b18b2474beaa77a2d9393eff4b98a7d6efefe3f6f76790090cbe5964409412ab2fddf98a2658fad17971740f47a17a83289356e2f63cfc298b51944148bc872d8206106492ae5284ea5d0ad7dc1fdc7090ac3f450d892ec3f20510fd59edeb8993a1a53b748d20ebb43a3c8f810bb8c7e8f03de84ba1daaf7a66874119f11da5988c1a63f129829ff9cd4be088e79e747bfa89661a7864b2a981927ce77b0487584dcceaad85f2473e12a2fa932fa71e2d4f19606049b29955568b15eabbda182461a95f3f724fe336e7ee605c4f284ff197611a46da93ef82693e217f03efbbcce4bacdd9d2d434a4a52b8b769119eeba19cfdbbecbc8593a72850a46887b69b93033f7679c9af92cd6bbb575b08e6b69e5170be3dff6e1d9fa54ce08962eb86cf66ae99c25ab0535f18a178cb46ba3458bdfb8c26cbe9e1af13467d0d5e468e9c7a032e544a55b24f9edf6ba89dc67ea0ca87593e33752268cddcf563d0997650cbceeefa22f3a05635ba7e0cd799f0ab2c2ca6e570d8ef524deb1824ab40c20429916a38c4ceda9c5ddb6b1014d2710c5369eeac9d634757c71a22b20dc04901ac3c0ccd372acc718e2472877e0b0cbe609215c500f30ca054a157833f7cee3257bb6c4c98fba6ef6606a699ebee16571ec3e8b3770390d1c9d2cbe8fba22ce"
 
enc_bytes = bytes.fromhex(encrypted)
 
cipher = AES.new(raw_key, AES.MODE_OFB, iv = iv)
dec = cipher.decrypt(enc_bytes)
 
print(dec.decode('utf-8'))
 楼主| dmvip 发表于 2025-2-24 23:33
十万菠萝拍黄瓜 发表于 2025-2-24 23:25
[mw_shl_code=python,true]from Crypto.Cipher import AES

raw_key = bytes([81, 86, 99, 48, 70, 86, ...

感谢,大佬  膜拜
hebeijianke 发表于 2025-2-24 23:52
这是哪个解析网站吗
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-5-20 04:49

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表