new_10009_YanCheng_Metrology/Assets/Scripts/SecretTest/Encrypt.cs

352 lines
32 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using LitJson;
using Org.BouncyCastle.Crypto.Engines;
using Org.BouncyCastle.Crypto.Paddings;
using Org.BouncyCastle.Crypto.Parameters;
using Org.BouncyCastle.Utilities.Encoders;
using SecretUtils;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Security.Policy;
using System.Text;
using UnityEngine;
using UnityEngine.Networking;
public class Encrypt : MonoBehaviour
{
public static byte[] _key = Encoding.UTF8.GetBytes("1234567890abcdef");
// Start is called before the first frame update
void Start()
{
}
/// <summary>
/// Token 需获取
/// Id 需获取
/// </summary>
[ContextMenu("Get测试")]
public void SendGet()
{
var _cipher = Sm4Base.EncryptECB(Encoding.UTF8.GetBytes("111"), _key);
string id = Hex.ToHexString((Sm4Base.EncryptECB(Encoding.UTF8.GetBytes("111"), _key)));
var _query = Query(id);
var _header = Header("eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjdjYzM0YzU5LTQ2OTYtNDAzMS05YzI4LTNlMTE1MTFhYzRhNyJ9.MOGGhT80BvL3PMgmG1Vl46doUZpNLsbFQm6szg4c2IHQV2AwC3mnyfa2HzS1JJZp95i7ts3AR9YxTFqzKtqZXQ");
StartCoroutine(GetRequest("http://172.16.1.127:8080/member/proSimulationExamination/queryById", _header, _query,
(x, y) =>
{
if (!string.IsNullOrEmpty(y))
{
Debug.Log(y);
Debug.Log(DecryptECB(y));
}
}));
}
/// <summary>
/// Token 需获取
/// </summary>
[ContextMenu("Post测试")]
public void SendPost()
{
var _header = Header("eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6ImFkYjgwYjBkLTZlZDEtNDk3Ni04MDFhLTBjZjcwNTI5YzBmNiJ9.t3G2q9BbbsrMTZkBVfuSGcMQiWuqZHNkUBDcHsg-3qIG_6wqikIV-xL7xMl6bOciUWhF1xAdh6eBzpB6r3ZpyQ");
MyData data = new MyData
{
id = "111",
appId = "",
courseId = "",
examId = "",
examinationId = "",
stuId = "",
groupId = "",
machineId = "",
batchId = "",
recordContent = "",
operationType = "",
isComp = "0",
currentProcess = "",
sumProcess = "",
score = "",
preScore = "",
inTimes = "1698723542",
remark = "",
stepName = "",
testPoint = "",
defaultScore = ""
};
//var _post_json = Sm4Base.EncryptECB(Encoding.UTF8.GetBytes(ToJson(data)), _key);
var _post_json = Sm4Base.EncryptECB(Encoding.UTF8.GetBytes("{\"id\":\"\",\"appId\":\"10002\",\"courseId\":2002,\"examId\":\"336\",\"examinationId\":\"1309080392359215104\",\"stuId\":\"106\",\"groupId\":\"74\",\"machineId\":\"f9c243dcb8c896c581d42c85329e551a306bb648\",\"batchId\":\"1309168544625197056\",\"recordContent\":\"{\\\"time\\\":\\\"8.756936\\\",\\\"score\\\":0.0,\\\"stepList\\\":[{\\\"stepName\\\":\\\"\\u67E5\\u770B\\u4EFB\\u52A1\\u5355\\\",\\\"testPoint\\\":\\\"\\u8BF7\\u70B9\\u51FB\\u79FB\\u52A8\\u4F5C\\u4E1A\\u7EC8\\u7AEF\\uFF0C\\u67E5\\u770B\\u60A8\\u63A5\\u53D7\\u5230\\u7684\\u4EFB\\u52A1\\u5DE5\\u5355\\\",\\\"setScore\\\":0.0,\\\"defaultScore\\\":0.0,\\\"isKey\\\":false},{\\\"stepName\\\":\\\"\\u5DE5\\u4F5C\\u9884\\u7EA6\\\",\\\"testPoint\\\":\\\"\\u8BF7\\u7535\\u8BDD\\u8054\\u7CFB\\u5BA2\\u6237\\\",\\\"setScore\\\":0.0,\\\"defaultScore\\\":0.0,\\\"isKey\\\":false},{\\\"stepName\\\":\\\"\\u529E\\u7406\\u5DE5\\u4F5C\\u7968\\\",\\\"testPoint\\\":\\\"\\u8BF7\\u9009\\u62E9\\u5408\\u9002\\u7684\\u5DE5\\u4F5C\\u7968\\uFF0C\\u5E76\\u6B63\\u786E\\u586B\\u5199\\\",\\\"setScore\\\":0.0,\\\"defaultScore\\\":5.0,\\\"isKey\\\":false},{\\\"stepName\\\":\\\"\\u586B\\u5199\\u88C5\\u62C6\\u5DE5\\u5355\\\",\\\"testPoint\\\":\\\"\\u8BF7\\u586B\\u5199\\u6B63\\u786E\\u7684\\u62C6\\u88C5\\u5DE5\\u4F5C\\u5355\\\",\\\"setScore\\\":0.0,\\\"defaultScore\\\":5.0,\\\"isKey\\\":false},{\\\"stepName\\\":\\\"\\u6B63\\u786E\\u7740\\u88C5\\\",\\\"testPoint\\\":\\\"\\u8BF7\\u524D\\u5F80\\u5DE5\\u5177\\u95F4\\uFF0C\\u9009\\u53D6\\u5DE5\\u4F5C\\u670D\\u3001\\u7EDD\\u7F18\\u978B\\u3001\\u5B89\\u5168\\u5E3D\\u3001\\u624B\\u5957\\uFF0C\\u5230\\u68B3\\u5986\\u955C\\u9762\\u524D\\u8FDB\\u884C\\u6362\\u88C5\\\",\\\"setScore\\\":0.0,\\\"defaultScore\\\":5.0,\\\"isKey\\\":false},{\\\"stepName\\\":\\\"\\u9009\\u53D6\\u5DE5\\u5668\\u5177\\\",\\\"testPoint\\\":\\\"\\u8BF7\\u524D\\u5F80\\u5DE5\\u5177\\u95F4\\uFF0C\\u6309\\u7167\\u987A\\u5E8F\\u9009\\u53D6\\u5265\\u7EBF\\u94B3,\\u7EDD\\u7F18\\u87BA\\u4E1D\\u5200,\\u9A8C\\u7535\\u7B14,\\u5DE5\\u4F5C\\u8BC1,\\u76D2\\u88C5\\u5C01\\u5370,\\u7EDD\\u7F18\\u80F6\\u5E26,\\u4E09\\u76F8\\u56DB\\u7EBF\\u8D39\\u63A7\\u667A\\u80FD\\u7535\\u80FD\\u8868\\\",\\\"setScore\\\":0.0,\\\"defaultScore\\\":5.0,\\\"isKey\\\":false},{\\\"stepName\\\":\\\"\\u4E0E\\u5BA2\\u6237\\u6C9F\\u901A\\\",\\\"testPoint\\\":\\\"\\u8BF7\\u524D\\u5F80\\u73B0\\u573A\\uFF0C\\u51FA\\u793A\\u5DE5\\u4F5C\\u724C\\uFF0C\\u544A\\u77E5\\u5DE5\\u4F5C\\u5185\\u5BB9\\u3002\\\",\\\"setScore\\\":0.0,\\\"defaultScore\\\":5.0,\\\"isKey\\\":false},{\\\"stepName\\\":\\\"\\u73ED\\u524D\\u4F1A\\\",\\\"testPoint\\\":\\\"\\u6E05\\u524D\\u5F80\\u73B0\\u573A\\uFF0C\\u7531\\u5DE5\\u4F5C\\u8D1F\\u8D23\\u4EBA\\u68C0\\u67E5\\u7740\\u88C5\\u662F\\u5426\\u89C4\\u8303\\u3001\\u4E2A\\u4EBA\\u9632\\u62A4\\u7528\\u54C1\\u662F\\u5426\\u5408\\u683C\\u9F50\\u5907\\u3001\\u4EBA\\u5458\\u7CBE\\u795E\\u72B6\\u6001\\u662F\\u5426\\u826F\\u597D\\\",\\\"setScore\\\":0.0,\\\"defaultScore\\\":5.0,\\\"isKey\\\":false},{\\\"stepName\\\":\\\"\\u4E09\\u6B65\\u9A8C\\u7535\\\",\\\"testPoint\\\":\\\"\\u8BF7\\u8FDB\\u884C\\u4E09\\u6B65\\u9A8C\\u7535\\\",\\\"setScore\\\":0.0,\\\"defaultScore\\\":5.0,\\\"isKey\\\":false},{\\\"stepName\\\":\\\"\\u63A5\\u7EBF\\u68C0\\u67E5\\u5E76\\u65AD\\u5F00\\u7535\\u6E90\\u9A8C\\u7535\\\",\\\"testPoint\\\":\\\"\\u8BF7\\u65AD\\u5F00\\u7535\\u6E90\\u5E76\\u9A8C\\u7535\\\",\\\"setScore\\\":0.0,\\\"defaultScore\\\":5.0,\\\"isKey\\\":false},{\\\"stepName\\\":\\\"\\u6838\\u5BF9\\u548C\\u6284\\u5F55\\u8BA1\\u91CF\\u8BBE\\u5907\\u4FE1\\u606F\\\",\\\"testPoint\\\":\\\"\\u8BF7\\u70B9\\u51FB\\u6838\\u5BF9\\u7535\\u80FD\\u8868\\u94ED\\u724C\\u5185\\u5BB9\\u548C\\u6709\\u6548\\u68C0\\u9A8C\\u5408\\u683C\\u6807\\u5FD7\\\",\\\"setScore\\\":0.0,\\\"defaultScore\\\":3.0,\\\"isKey\\\":false},{\\\"stepName\\\":\\\"\\u62C6\\u9664\\u7535\\u80FD\\u8BA1\\u91CF\\u88C5\\u7F6E\\\",\\\"testPoint\\\":\\\"\\u8BF7\\u6309\\u8981\\u6C42\\u62C6\\u9664\\u7535\\u80FD\\u8BA1\\u91CF\\u88C5\\u7F6E\\\",\\\"setScore\\\":0.0,\\\"defaultScore\\\":17.0,\\\"isKey\\\":true},{\\\"stepName\\\":\\\"\\u5B89\\u88C5\\u7535\\u80FD\\u8868\\\",\\\"testPoint\\\":\\\"\\u8BF7\\u6309\\u8981\\u6C42\\u5B89\\u88C5\\u7535\\u80FD\\u8868\\\",\\\"setScore\\\":0.0,\\\"defaultScore\\\":17.0,\\\"isKey\\\":true},{\\\"stepName\\\":\\\"\\u73B0\\u573A\\u901A\\u7535\\u53CA\\u68C0\\u67E5\\\",\\\"testPoint\\\":\\\"\\u8BF7\\u6309\\u8981\\u6C42\\u8FDB\\u884C\\u901A\\u7535\\u53CA\\u68C0\\u67E5\\\",\\\"setScore\\\":0.0,\\\"defaultScore\\\":5.0,\\\"isKey\\\":false},{\\\"stepName\\\":\\\"\\u5B9E\\u65BD\\u5C01\\u5370\\\",\\\"testPoint\\\":\\\"\\u8BF7\\u5BF9\\u7535\\u80FD\\u8868\\u3001\\u8BA1\\u91CF\\u7BB1\\uFF08\\u67DC\\uFF09\\u52A0\\u5C01\\\",\\\"setScore\\\":0.0,\\\"defaultScore\\\":3.0,\\\"isKey\\\":false},{\\\"stepName\\\":\\\"\\u6E05\\u7406\\u73B0\\u573A\\\",\\\"testPoint\\\":\\\"\\u8BF7\\u628A\\u5DE5\\u5668\\u5177\\u6536\\u56DE\\u80CC\\u5305\\u5E76\\u6E05\\u7406\\u73B0\\u573A\\\",\\\"setScore\\\":0.0,\\\"defaultScore\\\":5.0,\\\"isKey\\\":false},{\\\"stepName\\\":\\\"\\u73B0\\u573A\\u5B8C\\u5DE5\\\",\\\"testPoint\\\":\\\"\\u8BF7\\u544A\\u77E5\\u5BA2\\u6237\\u5DF2\\u5B8C\\u5DE5\\\",\\\"setScore\\\":0.0,\\\"defaultScore\\\":5.0,\\\"isKey\\\":false},{\\\"stepName\\\":\\\"\\u5DE5\\u4F5C\\u7968\\u7EC8\\u7ED3\\\",\\\"testPoint\\\":\\\"\\u8BF7\\u529E\\u7406\\u5DE5\\u4F5C\\u7968\\u7EC8\\u7ED3\\\",\\\"setScore\\\":0.0,\\\"defaultScore\\\":5.0,\\\"isKey\\\":false}]}\",\"operationType\":\"2\",\"isComp\":\"1\",\"currentProcess\":\"0\",\"sumProcess\":\"0\",\"score\":\"0,0,0,0,0,0,0,0\",\"preScore\":\"\",\"inTimes\":\"8.9035012\",\"remark\":null,\"stepName\":\"\",\"testPoint\":\"\",\"defaultScore\":\"\"}"), _key);
var ss = Hex.ToHexString(_post_json);
var mw = "c991b6107a1b8f97c32104da7debbbbd58e2bef0f865e08d10476ddacd40d4fbb82f0927a2e3ca051e16f1e32422c48bd7a630877f1155a2dc78781ab4792663bdbcb562038e6516d3f46d232329ccfccaf9c7df6918e99ec8578b82ceb808a07432ae1254949a4ee73f2e94616647911c141d85e38ecde0908d6ee5177ffdd9d7bf297d82427c946b5a5ce687237141dd7159f4d826b5d5d4e9b4e5538499a33eb772d4c44bc5cfe020e54c49d0c97cc17b422e250ec0e271ecc0261962428927783f2ab5b8c0a4f03be56d71cd3464c4c398e0a177b45061a3f32d2f24d563540ee36a88d7c8962c23c5f0dd76ae9ba5b962379ff5d1d311265eb547152138aae946184091f0830acfcb1ef81a46ab18e5af886521a957a4d4725622260b82f968e75dc55d3f359a0876c184add700928c1601b46b3dbc7dcba9a6977a664e3ddd0157609f97062c9bcbefc26a2882784ec98e63f20dd3dd24e4f0ce7ae16e0c20e752ac5656817e98823c3b28777d2f4598742ec26db176fff270a47cbf23b9b78470f4f90908b05f72ad248eb6380e4e2c593f6a947a92b60b26fda8d8d852c6c1a219064f47b13e26003e111969f2d1132930701f3d081090a752a81f289ee7017f95ce0cc31362d000f7c3486dcb59aff965d7b4675f0aca18c6570ad20a29095c39946496379b6ccf60aa43585c24806f96a86cd0d2108e1884da531c4e89cb43637f05da55eff2d47e1529b4b2b3acfa91af5f34b76d1be8ad06f7a5f07ef79b0b3da9942b766389981fcdbfa3ba9ae066d69e402f32f6cba6a813065c503081a9e7d32912660b2926af847a3eb96676596d98d3aff209ce359440f9fdf340982748de6a750982c92605acee45dc06027d2f9d2c51fd7d3438d3fd0763b79591815711ba1214b7fdc4426a287f1c115278f6caf8f249e0a3869a7e252619ea716be9b9832ea29599bdf620ef726fda5144533f57701fb5558db760e38660e1078e87ec8baf04e3326bf066115cea64f09a553e2d8f9af3b1235617a46e616c33f2394a778d4b1b2bbaac4b534f312fa5c704d10655f8fc5714ab8cf9d7c6d33f6af3a002433d444815d1dbac0c35c6d58bb340d61bbe51bab27bac0a7ddf17c19e9491e0243bc66ad76e3d62415465f644bfb377ee97ce63a8b237602744ab1017ca9a25fea505c1666099d5bf5c8e7cc915cb0f21c9af3544ef0dc9aef987ad10405147fca58520517ca2ec017cd904e9a8b4fe712ef827bf4a45121c50af09017cca977bd4853ee99a7a87b13306869806e5ecd577f099d9fa985f5fb74f36d04d81db868ac193bd64f182464fdd8dc9500ba6aed7f047eb14f46f5c503081a9e7d32912660b2926af847a1e7a594b01896afbac2f49bd078e92f0d57da44c392d6f47f98e124a20fdf26153bbea7bab7edfe24c04e7bfd9845a3b1d25353ee5ef9590fe662653f497ad8ddbc7e8648666e13f2b048d8ed5afcdc1aee959163c8498c6ef0ffb46214d6a05f30ef99daa097dabaff268f7cc7e7ca75f31e5ffbb020bac063c4a124947c96bad46a2ff3b8e8e94746e814719edfc792ececec041c046059e48c60905d8181b92a56ccbcd62bce327a25ad3ee82c2b40f22621d8b682629a56eeed2bb8e77f214c3946b390b07bd8b36d025002db8ee1a3a1b3f868c95c686ea87f8f222b4c7a9bd2ed869048e778873672bf17593313aaf074799132399d8ae3b15ad1341acb46031867e1a8c41ecb70766adfd774207cbd09ba7b879666a2e6f1ab05e85f0addf9548b74f4b41a87a3505aa9b9a74e88b414a3d387c175acc135f0048a736b7076c2b0f50b5591ee8b2056e7a8c7f2a91db3455d5725d9137ae50425e11fe38d752e2bde053f297f6b7322637f39596b74dd971ccdf16f798fbe6274f9ec14cd8eff1cff53264d348f10a3be48189cd42cb37199afb8ae6373593c8812a210ee89e75f0f3d696b94d844cc805dba3f91ed6abc4733e1718fafa3acf6510d24500b21c3d52e8f920685c439c9205322f9bad2bbfb8982b08fa25a982fbde476b34181a943939306b75becf8fe41ea171ac91f0dde410b6ff5ad1073d5e688d2ac677a8293e6bf2a55eecadc1ca04c0b64f002cd9e73b8a139582570fc0be972915fd3b87f1e467f63c86dfc21c068feb389f6a4672ac3b5a82b6540f50d13b55182322cdf31bac1d0b8b9874745abc68a5a505e5624dc5b546d26fa3adfa75c0c04e370f15c3466fd9bf65799fab4403bc954e4b985224e8a94b78138b9cb1f1799ad1b474fa478c5ef4ea442355bcb26de46a4b25f53275729ea6de2185839e8e0eabf3475e39e005c7fce01effa465e92be3b9b2c41969aab3e93f178198a4b3c69a74becfda7fd85df927201b93cc1dd35ff2181fe00b555c669524ed217f3f422d176c6f69e085542404a0d4a8875e9e93b1b88333031feace97a2aba5479c9e857142776de4daa3916dc8c86609c7db6fb62985cf2581df928e62a70c76fcb37c93bc9bd4b8c5fd6fda849a90cc896068ee92e3eb2ff040e45fe87b8d5535dcbea1799db4d075fdd864d27f4509d10ddbc8c2589097ad396cdbd7cd49c1f6aaa7f026819539f08b35865895b56aa53e45fb27ad390795c3169cb42d5e497c54cbef4adef47d892b50c191f979328f90d8bd724ab8c53a406f4e9c9cf4029fca0a5ca0c964ba7b99455b6b72412100d172af90575fec6382a6ce5e2bfe6b425cf3c2fe751872bf9d9a2f85ac88c5138171a6bad5944a9dbf5a49c57c8701578a130be8ad5ac229aa806e85ef2851b3468955e0fe4653090b9dbae13c4160cf85672864fec34008e81641fb84ecbdbe556730555d0b96cc7b981548a87c85d1618ba69aa1a3fa100afb217df99379e111a27c8e6ea695fae5656a8dc3cd2ba2bc38afc393e911751c2ec6fc198684b0f0015b7bc010db91ffed863db2fe5b6ea52a5cc5e8707d368dd5cdd87bdc0cdb49d84386fe06e03cf7654c78defed01e0dddea24e5382af4c54036a8ad4aad71fa9b7b0a2ecda09da47279d915bf777f0b5441d4763a2f00a78b5537776a20131a1a926d8bec035413fca2b11a2456466f4a963c0b9a4ddf359404984ee523cc993e06e1ef8ea9471b94b3a3e8824a8ca58091478b408b59a9813e080491b608fef8c59bb1cfd5c73b387aed59a9378ad521e82fe6715c418070d020c4a907dab095f67e8b4c5fda53e524f49c583f53a09da0281dd57bf82160cdf3a46de3e4b7854ec061201ab095ab7040a0c795f3582253dc9d51ede88c70c601903ca1c3c1a16103fd0a84b5d3d8f54c31ccb6094ee774418aa3a80821246f31d0f0d0194a4044a4f1d7118c7bc6423957c842df7cf8636349a178fff84412e5a7cc9ebe161cf1a9a0798057297f557df016eb69a026f3e212f6a31c887dbcdfe96a34eb63416e4d08d118cd4ba5cc84ec074ee095e88fc2ce7725a82e8007f2a07c853fe720c6638ac8097d534c9177f2b80a31d8d61a6841dbe5db3078dd7f101c6e9c1e0fd21fc11ddee8618c7afe36643e003c15fcb12fd13ebd75db97c26ccb41bd229a9f7ce06eda857d64cca37e4d0a29095c39946496379b6ccf60aa4358db345ff28c1e4d16a205357ce9c88bc84e89cb43637f05da55eff2d47e1529b4b2b3acfa91af5f34b76d1be8ad06f7a5671c6135ba06c79ef7167444ad4100ca55bca0e2f9d7da7374604188f4783ca7dbda6582d4d1e1080e0c651d138c82eea25a04347d6a4b58c2731977b9b6814a79663c279abb24e5ef25d34ca4639ce1e9786dd5e2ec572a5dd65d856a9e69c12e47350f3ea842ce89d06858021b88a3d7dcd99e26371dedabe1de0ae8e31adfb8c05c299ce1a30fc61a8e43d2df3cb863b79591815711ba1214b7fdc4426a280fe53205a0a902f90589513676e655432619ea716be9b9832ea29599bdf620ef726fda5144533f57701fb5558db760e3ba7c7348286cf9901e59e15f151ef1d6836416f66f7fdccd8f17d2efa3d7adddd827ef0869d0ffa999e3e0f60bedc7ce32e473888b39baa34227b8374c54267ea10a54c5886c3bbd5f731127787f6914408360906e83ba5fb74b331aac91ca12555c048d3ed91a99f3414f3c264485b32ac48b29d0bc7d2325444ba92b6f9d53d6df1d172703ee158ef6a8bc9f16b1ef45b3fe1d522fb77cafb14726e936bff79f6f9697be65eb345b9a056e01c580001d7314a25a5e3d7bbda08eb7425ca464589c16aa04a00f62b43376cae816bd963d74742ce3ca3c9339171cedfe8ec2c7376bffee608940411379209789dab7ae10995b826018acdb5c727dcbb9db2f753dfc653090873f5e7da778dbcabb3b5c3ddae0384f27d674fca8f4a04cd1ebaf83016f44cd90c58300a0a6266840158643943f0afa7e702ace9aec37d4643738319df610432a2ea97c0f9f70d4201ccf5b6ea52a5cc5e8707d368dd5cdd87bdca4313ccdbcdb2a767275c333312e51b3bd161d0bd96e31d55bd15c3764402df62f3846f61a1f118f2176fb9a75ac7fedbb77171c22d7b28f500f2404a073968bb796452df87d0b7480ede41bb101355542df7cf8636349a178fff84412e5a7ccbfa2bff2200fd611cfc07db74ee86a4ecdecf7e3ea2fee8421dc21b2540b612934eb63416e4d08d118cd4ba5cc84ec0771d6a9da82bc1fd9f36c30d468a26a5346796aa387265490ee3599f2b8b9b4c992a56ccbcd62bce327a25ad3ee82c2b4c5c76c03819583edd4d0705bc2742eaddecad2aa81124b139bd76f96a6dac185a22c75bf77c2ae288b5f1fb375c7658d2498569d1e03b1009cf08ae4e9ee13fa3b7bfbcaaac7769a5165400f7b502a5f8f5411f98e0a7b639708b3b702396b6256b1f4529fbaabf46b318d8ce833984bb846e196594732bcf56bee4f1278ac96c620953b21453746be10241b70414cbe63036522f42f5a4a188594ea2e564dcbeb7db30226bcbcc0dafdfba01f6f6c0a5b6ea52a5cc5e8707d368dd5cdd87bdca4313ccdbcdb2a767275c333312e51b348c1791d1a147f07f5a232ea6437e2335b2bbfbefbde9924579056060842b62eaf59e8f28d27a4d72afb7bcb7b243e979ae5236e8ab93e465b26671cd28cba89444fcbf9c4c3ac5185fec96cf851442c9fbe1c802b6d8b9ad0bb3d0eac0d6cf32cf2d3d2a193bff91417df2a5eecbac1a3b0f0d7220dbaef65767273ba96ef95630dc053430d9967593e4dac7c156c1654b100b05623fe36ec51f193f0c2f1a5382bdf9e53da8e7a1405ff8be6415da12ac48b29d0bc7d2325444ba92b6f9d53a1f665c904c4f1d3ca27dd6d341784ce88b3e4fa2eb7c65d60fe1420723689971992b99ff073422a4381ac7010881d7e4e85b242f642dd6b824ecbd7396688d9bf5c8e7cc915cb0f21c9af3544ef0dc99bdd85db278cacef96eedda64b74f90a017cd904e9a8b4fe712ef827bf4a45121c50af09017cca977bd4853ee99a7a87cc93935b8c92056c574cc4163791c11c0f59e26f46d9ebb47a1d8179914b0d115b6ea52a5cc5e8707d368dd5cdd87bdcbab8f7ac775b3c5a42acd41c1314094e6c2566d456640a3d101a216c68ce1d14c8f0c8231802a722944f27bd21d859489aff2ac8cc0c3c0a16adc9ab35170ce3f95f7de2e5cf60e10185a0a46381ecb0950081db8167781afda8c5339a05719476fcb37c93bc9bd4b8c5fd6fda849a90cc896068ee92e3eb2ff040e45fe87b8d5535dcbea1799db4d075fdd864d27f452942d872728d4752c35a9e9f9fe11c18d4ff5a89457256d9550b9efb5f5b167a6c409ff360ab92abf93fca03abb27a8524a2cc3fcba485e47a5a3e4d782ccd1b819a7027d6a770d33c31a3681dc2604f9e2ee76aa35a9325c82e7b034bbf3f79bfdbb2b912e33678a35992b9df0f001d3b7bfbcaaac7769a5165400f7b502a5fee511dd8111a11c0afec8f61939f0647088a6b89df35e207357cf5c45deddc0eb846e196594732bcf56bee4f1278ac96d92d84ed80daa1d82ef09a10aa9f371e6b585cd16e9a1500b280ab968e58e6afff52ca70e2d5ebb9f9575d2ea42726b3d9bf28567112d0dec6d275aca3f12faf1c1807643f7ec9ca5227c59a665d45bce05fc9351e24ed072412205e49acb6d42fd30e8b668fd1550d7e22d5f92e350e76fcb37c93bc9bd4b8c5fd6fda849a90cc896068ee92e3eb2ff040e45fe87b8db9f847717c402a87846a3808ea89a9d1130cd8ce7debcb5e519e44c44a8bc132000f264762c22afa5edfd0c58354c76f33631df602f452fcc82e5f82ea28b1d3a1c1888f9a1e3fbbb20ac9e05539731a8b05b284d4543801bbfa3ae7bdaced616a862174a12892c40739c0e0751d4331a130098ffb8194f849325eba23c9fb9675599f9dec264d2941c4bf1fe3cbc1592ef368fbac3dca171de0216dc9d4dc89aeb2a577cece6b26f16520b30354700a864655a60e0ce75346d72bfb29141a1d2962e6c4a7372b858f222210faf8e8869de724f5bdcd4ceacb9c7fc851a5198f";
Debug.Log($"密文:<color=red>{ss}</color>");
Debug.Log($"解密:<color=red>{Encrypt.DecryptECB(ss)}</color>");
StartCoroutine(PostRequest("http://172.16.1.127:8080/member/pro/simulationStepRecord/addSubmitDetail", mw, _header,
(x, y) =>
{
if (!string.IsNullOrEmpty(y))
{
Debug.Log(y);
Debug.Log(DecryptECB(y));
}
}));
}
[ContextMenu("Post测试222")]
public void SendPostwqewq()
{
StartCoroutine(sendPost("",null));
}
public IEnumerator sendPost(string itf, JsonData jsonData, Action<string> action=null)
{
//string ds = jsonData.ToJson();
string ds = "{\"id\":\"\",\"appId\":\"10002\",\"courseId\":2002,\"examId\":\"336\",\"examinationId\":\"1309080392359215104\",\"stuId\":\"106\",\"groupId\":\"74\",\"machineId\":\"f9c243dcb8c896c581d42c85329e551a306bb648\",\"batchId\":\"1309168544625197056\",\"recordContent\":\"{\\\"time\\\":\\\"8.756936\\\",\\\"score\\\":0.0,\\\"stepList\\\":[{\\\"stepName\\\":\\\"\\u67E5\\u770B\\u4EFB\\u52A1\\u5355\\\",\\\"testPoint\\\":\\\"\\u8BF7\\u70B9\\u51FB\\u79FB\\u52A8\\u4F5C\\u4E1A\\u7EC8\\u7AEF\\uFF0C\\u67E5\\u770B\\u60A8\\u63A5\\u53D7\\u5230\\u7684\\u4EFB\\u52A1\\u5DE5\\u5355\\\",\\\"setScore\\\":0.0,\\\"defaultScore\\\":0.0,\\\"isKey\\\":false},{\\\"stepName\\\":\\\"\\u5DE5\\u4F5C\\u9884\\u7EA6\\\",\\\"testPoint\\\":\\\"\\u8BF7\\u7535\\u8BDD\\u8054\\u7CFB\\u5BA2\\u6237\\\",\\\"setScore\\\":0.0,\\\"defaultScore\\\":0.0,\\\"isKey\\\":false},{\\\"stepName\\\":\\\"\\u529E\\u7406\\u5DE5\\u4F5C\\u7968\\\",\\\"testPoint\\\":\\\"\\u8BF7\\u9009\\u62E9\\u5408\\u9002\\u7684\\u5DE5\\u4F5C\\u7968\\uFF0C\\u5E76\\u6B63\\u786E\\u586B\\u5199\\\",\\\"setScore\\\":0.0,\\\"defaultScore\\\":5.0,\\\"isKey\\\":false},{\\\"stepName\\\":\\\"\\u586B\\u5199\\u88C5\\u62C6\\u5DE5\\u5355\\\",\\\"testPoint\\\":\\\"\\u8BF7\\u586B\\u5199\\u6B63\\u786E\\u7684\\u62C6\\u88C5\\u5DE5\\u4F5C\\u5355\\\",\\\"setScore\\\":0.0,\\\"defaultScore\\\":5.0,\\\"isKey\\\":false},{\\\"stepName\\\":\\\"\\u6B63\\u786E\\u7740\\u88C5\\\",\\\"testPoint\\\":\\\"\\u8BF7\\u524D\\u5F80\\u5DE5\\u5177\\u95F4\\uFF0C\\u9009\\u53D6\\u5DE5\\u4F5C\\u670D\\u3001\\u7EDD\\u7F18\\u978B\\u3001\\u5B89\\u5168\\u5E3D\\u3001\\u624B\\u5957\\uFF0C\\u5230\\u68B3\\u5986\\u955C\\u9762\\u524D\\u8FDB\\u884C\\u6362\\u88C5\\\",\\\"setScore\\\":0.0,\\\"defaultScore\\\":5.0,\\\"isKey\\\":false},{\\\"stepName\\\":\\\"\\u9009\\u53D6\\u5DE5\\u5668\\u5177\\\",\\\"testPoint\\\":\\\"\\u8BF7\\u524D\\u5F80\\u5DE5\\u5177\\u95F4\\uFF0C\\u6309\\u7167\\u987A\\u5E8F\\u9009\\u53D6\\u5265\\u7EBF\\u94B3,\\u7EDD\\u7F18\\u87BA\\u4E1D\\u5200,\\u9A8C\\u7535\\u7B14,\\u5DE5\\u4F5C\\u8BC1,\\u76D2\\u88C5\\u5C01\\u5370,\\u7EDD\\u7F18\\u80F6\\u5E26,\\u4E09\\u76F8\\u56DB\\u7EBF\\u8D39\\u63A7\\u667A\\u80FD\\u7535\\u80FD\\u8868\\\",\\\"setScore\\\":0.0,\\\"defaultScore\\\":5.0,\\\"isKey\\\":false},{\\\"stepName\\\":\\\"\\u4E0E\\u5BA2\\u6237\\u6C9F\\u901A\\\",\\\"testPoint\\\":\\\"\\u8BF7\\u524D\\u5F80\\u73B0\\u573A\\uFF0C\\u51FA\\u793A\\u5DE5\\u4F5C\\u724C\\uFF0C\\u544A\\u77E5\\u5DE5\\u4F5C\\u5185\\u5BB9\\u3002\\\",\\\"setScore\\\":0.0,\\\"defaultScore\\\":5.0,\\\"isKey\\\":false},{\\\"stepName\\\":\\\"\\u73ED\\u524D\\u4F1A\\\",\\\"testPoint\\\":\\\"\\u6E05\\u524D\\u5F80\\u73B0\\u573A\\uFF0C\\u7531\\u5DE5\\u4F5C\\u8D1F\\u8D23\\u4EBA\\u68C0\\u67E5\\u7740\\u88C5\\u662F\\u5426\\u89C4\\u8303\\u3001\\u4E2A\\u4EBA\\u9632\\u62A4\\u7528\\u54C1\\u662F\\u5426\\u5408\\u683C\\u9F50\\u5907\\u3001\\u4EBA\\u5458\\u7CBE\\u795E\\u72B6\\u6001\\u662F\\u5426\\u826F\\u597D\\\",\\\"setScore\\\":0.0,\\\"defaultScore\\\":5.0,\\\"isKey\\\":false},{\\\"stepName\\\":\\\"\\u4E09\\u6B65\\u9A8C\\u7535\\\",\\\"testPoint\\\":\\\"\\u8BF7\\u8FDB\\u884C\\u4E09\\u6B65\\u9A8C\\u7535\\\",\\\"setScore\\\":0.0,\\\"defaultScore\\\":5.0,\\\"isKey\\\":false},{\\\"stepName\\\":\\\"\\u63A5\\u7EBF\\u68C0\\u67E5\\u5E76\\u65AD\\u5F00\\u7535\\u6E90\\u9A8C\\u7535\\\",\\\"testPoint\\\":\\\"\\u8BF7\\u65AD\\u5F00\\u7535\\u6E90\\u5E76\\u9A8C\\u7535\\\",\\\"setScore\\\":0.0,\\\"defaultScore\\\":5.0,\\\"isKey\\\":false},{\\\"stepName\\\":\\\"\\u6838\\u5BF9\\u548C\\u6284\\u5F55\\u8BA1\\u91CF\\u8BBE\\u5907\\u4FE1\\u606F\\\",\\\"testPoint\\\":\\\"\\u8BF7\\u70B9\\u51FB\\u6838\\u5BF9\\u7535\\u80FD\\u8868\\u94ED\\u724C\\u5185\\u5BB9\\u548C\\u6709\\u6548\\u68C0\\u9A8C\\u5408\\u683C\\u6807\\u5FD7\\\",\\\"setScore\\\":0.0,\\\"defaultScore\\\":3.0,\\\"isKey\\\":false},{\\\"stepName\\\":\\\"\\u62C6\\u9664\\u7535\\u80FD\\u8BA1\\u91CF\\u88C5\\u7F6E\\\",\\\"testPoint\\\":\\\"\\u8BF7\\u6309\\u8981\\u6C42\\u62C6\\u9664\\u7535\\u80FD\\u8BA1\\u91CF\\u88C5\\u7F6E\\\",\\\"setScore\\\":0.0,\\\"defaultScore\\\":17.0,\\\"isKey\\\":true},{\\\"stepName\\\":\\\"\\u5B89\\u88C5\\u7535\\u80FD\\u8868\\\",\\\"testPoint\\\":\\\"\\u8BF7\\u6309\\u8981\\u6C42\\u5B89\\u88C5\\u7535\\u80FD\\u8868\\\",\\\"setScore\\\":0.0,\\\"defaultScore\\\":17.0,\\\"isKey\\\":true},{\\\"stepName\\\":\\\"\\u73B0\\u573A\\u901A\\u7535\\u53CA\\u68C0\\u67E5\\\",\\\"testPoint\\\":\\\"\\u8BF7\\u6309\\u8981\\u6C42\\u8FDB\\u884C\\u901A\\u7535\\u53CA\\u68C0\\u67E5\\\",\\\"setScore\\\":0.0,\\\"defaultScore\\\":5.0,\\\"isKey\\\":false},{\\\"stepName\\\":\\\"\\u5B9E\\u65BD\\u5C01\\u5370\\\",\\\"testPoint\\\":\\\"\\u8BF7\\u5BF9\\u7535\\u80FD\\u8868\\u3001\\u8BA1\\u91CF\\u7BB1\\uFF08\\u67DC\\uFF09\\u52A0\\u5C01\\\",\\\"setScore\\\":0.0,\\\"defaultScore\\\":3.0,\\\"isKey\\\":false},{\\\"stepName\\\":\\\"\\u6E05\\u7406\\u73B0\\u573A\\\",\\\"testPoint\\\":\\\"\\u8BF7\\u628A\\u5DE5\\u5668\\u5177\\u6536\\u56DE\\u80CC\\u5305\\u5E76\\u6E05\\u7406\\u73B0\\u573A\\\",\\\"setScore\\\":0.0,\\\"defaultScore\\\":5.0,\\\"isKey\\\":false},{\\\"stepName\\\":\\\"\\u73B0\\u573A\\u5B8C\\u5DE5\\\",\\\"testPoint\\\":\\\"\\u8BF7\\u544A\\u77E5\\u5BA2\\u6237\\u5DF2\\u5B8C\\u5DE5\\\",\\\"setScore\\\":0.0,\\\"defaultScore\\\":5.0,\\\"isKey\\\":false},{\\\"stepName\\\":\\\"\\u5DE5\\u4F5C\\u7968\\u7EC8\\u7ED3\\\",\\\"testPoint\\\":\\\"\\u8BF7\\u529E\\u7406\\u5DE5\\u4F5C\\u7968\\u7EC8\\u7ED3\\\",\\\"setScore\\\":0.0,\\\"defaultScore\\\":5.0,\\\"isKey\\\":false}]}\",\"operationType\":\"2\",\"isComp\":\"1\",\"currentProcess\":\"0\",\"sumProcess\":\"0\",\"score\":\"0,0,0,0,0,0,0,0\",\"preScore\":\"\",\"inTimes\":\"8.9035012\",\"remark\":null,\"stepName\":\"\",\"testPoint\":\"\",\"defaultScore\":\"\"}";
var _post_json = Sm4Base.EncryptECB(Encoding.UTF8.GetBytes(ds), _key);
var ss = Hex.ToHexString(_post_json);
Debug.Log($"密文:<color=red>{ss}</color>");
Debug.Log($"解密:<color=red>{Encrypt.DecryptECB(ss)}</color>");
//byte[] postBytes = Encoding.Default.GetBytes(ds);
using (UnityWebRequest request = new UnityWebRequest("http://172.16.1.127:8080/member/pro/simulationStepRecord/addSubmitDetail", "POST"))
{
request.uploadHandler = new UploadHandlerRaw(_post_json);
request.downloadHandler = new DownloadHandlerBuffer();
request.SetRequestHeader("Content-Type", "application/json");
//if (GameManager.NetMgr.token != "")
{
request.SetRequestHeader("Authorization", "eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6ImFkYjgwYjBkLTZlZDEtNDk3Ni04MDFhLTBjZjcwNTI5YzBmNiJ9.t3G2q9BbbsrMTZkBVfuSGcMQiWuqZHNkUBDcHsg-3qIG_6wqikIV-xL7xMl6bOciUWhF1xAdh6eBzpB6r3ZpyQ");
}
yield return request.SendWebRequest();//发送请求
if (request.responseCode == 200)//检验是否成功
{
string text = request.downloadHandler.text;
var s = Encrypt.DecryptECB(text);
Debug.Log(s);
//action?.Invoke(text);
action?.Invoke(s);
}
else
{
Debug.Log("请求失败:" + request.responseCode);
}
}//method传输方式默认为Get
}
// Update is called once per frame
void Update()
{
}
public static string DecryptECB(string encryptedHex)
{
byte[] _key = Encoding.UTF8.GetBytes("1234567890abcdef");
// 将16进制字符串转换为字节数组
byte[] encryptedBytes = HexToBytes(encryptedHex);
// 创建SM4引擎
var engine = new SM4Engine();
// 使用ECB模式
var cipher = new PaddedBufferedBlockCipher(engine, new Pkcs7Padding());
// 初始化解密器
cipher.Init(false, new KeyParameter(_key));
// 解密
byte[] decryptedBytes = new byte[cipher.GetOutputSize(encryptedBytes.Length)];
int length = cipher.ProcessBytes(encryptedBytes, 0, encryptedBytes.Length, decryptedBytes, 0);
length += cipher.DoFinal(decryptedBytes, length);
// 将解密后的字节数组转换为字符串
string decryptedText = Encoding.UTF8.GetString(decryptedBytes, 0, length);
return decryptedText;
}
private static byte[] HexToBytes(string hex)
{
int length = hex.Length;
byte[] bytes = new byte[length / 2];
for (int i = 0; i < length; i += 2)
{
bytes[i / 2] = Convert.ToByte(hex.Substring(i, 2), 16);
}
return bytes;
}
/// <summary>
/// Get请求
/// </summary>
/// <param name="_url"></param>
/// <param name="_header"></param>
/// <param name="_query"></param>
/// <param name="_callback"></param>
/// <returns></returns>
public static IEnumerator GetRequest(string _url, Dictionary<string, string> _header = null, Dictionary<string, string> _query = null, Action<string, string> _callback = null)
{
//if (_url.EndsWith("/"))
//{
// _url = _url.Substring(0, _url.Length - 1);
//}
StringBuilder builder = new StringBuilder();
builder.Append(_url);
if (_query != null)
{
builder.Append("?");
int i = 0;
foreach (var item in _query)
{
if (i > 0)
builder.Append("&");
builder.AppendFormat("{0}={1}", item.Key, item.Value);
i++;
}
}
using (UnityWebRequest request = UnityWebRequest.Get(builder.ToString()))
{
if (_header != null)
{
foreach (var item in _header)
{
request.SetRequestHeader(item.Key, item.Value);
}
}
yield return request.SendWebRequest();
if (request.error != null)
{
_callback?.Invoke(request.error, null);
}
else
{
_callback?.Invoke(null, request.downloadHandler.text);
}
}
}
/// <summary>
/// Post请求
/// </summary>
/// <param name="_url"></param>
/// <param name="_post_json"></param>
/// <param name="_callback"></param>
/// <returns></returns>
public static IEnumerator PostRequest(string _url, string _post_json, Dictionary<string, string> _header = null, Action<string, string> _callback = null)
{
using (UnityWebRequest request = new UnityWebRequest(_url, "POST"))
{
var data = Encoding.UTF8.GetBytes(_post_json);
request.uploadHandler = new UploadHandlerRaw(data);
request.downloadHandler = new DownloadHandlerBuffer();
if (_header != null)
{
foreach (var item in _header)
{
request.SetRequestHeader(item.Key, item.Value);
}
}
yield return request.SendWebRequest();
if (request.error != null)
{
_callback?.Invoke(request.error, null);
}
else
{
_callback?.Invoke(null, request.downloadHandler.text);
}
}
}
public Dictionary<string, string> Query(
string id/*, string appId, string courseId, string examId, string examinationId,
string stuId, string groupId, string machineId, string batchId, string recordContent,
string operationType, string isComp, string currentProcess, string sumProcess,
string score, string preScore, string inTimes, string remark, string stepName,
string testPoint, string defaultScore*/)
{
Dictionary<string, string> request_querylist = new Dictionary<string, string>();
request_querylist.Add("id", id);
//request_querylist.Add("appId", appId);
//request_querylist.Add("courseId", courseId);
//request_querylist.Add("examId", examId);
//request_querylist.Add("examinationId", examinationId);
//request_querylist.Add("stuId", stuId);
//request_querylist.Add("groupId", groupId);
//request_querylist.Add("machineId", machineId);
//request_querylist.Add("batchId", batchId);
//request_querylist.Add("recordContent", recordContent);
//request_querylist.Add("operationType", operationType);
//request_querylist.Add("isComp", isComp);
//request_querylist.Add("currentProcess", currentProcess);
//request_querylist.Add("sumProcess", sumProcess);
//request_querylist.Add("score", score);
//request_querylist.Add("preScore", preScore);
//request_querylist.Add("inTimes", inTimes);
//request_querylist.Add("remark", remark);
//request_querylist.Add("stepName", stepName);
//request_querylist.Add("testPoint", testPoint);
//request_querylist.Add("defaultScore", defaultScore);
return request_querylist;
}
public static Dictionary<string, string> Header(string token)
{
Dictionary<string, string> request_header = new Dictionary<string, string>();
request_header.Add("Content-Type", "application/json");
request_header.Add("Authorization", token);
return request_header;
}
public class MyData
{
public string id;
public string appId;
public string courseId;
public string examId;
public string examinationId;
public string stuId;
public string groupId;
public string machineId;
public string batchId;
public string recordContent;
public string operationType;
public string isComp;
public string currentProcess;
public string sumProcess;
public string score;
public string preScore;
public string inTimes;
public string remark;
public string stepName;
public string testPoint;
public string defaultScore;
}
public string ToJson(MyData data)
{
return JsonUtility.ToJson(data);
}
public static MyData FromJson(string json)
{
return JsonUtility.FromJson<MyData>(json);
}
}