为什么我用PHP可以解密成功,而Go却不能?

问题描述 投票:0回答:1

加密数据

encryptData="ZithNDRYL0s4WmRhREZWUXFvVzNGdjk0V3YzRnlWV3ZIMGVrMjZVY081T1FxVkx2dVg0R0FHKzBJSGFLRTYzYVZlbW1TQkt6R010OStUT3BCbkpvaDExS0pOa0YxVWw5dC8zYWNKUFdremZMcGZ3MHFKYnlFL3FMQVZaZmt4bEZlUTRxVEZvWTIvUnkxbGlyWmZNdllKdFhEVFE0eUFLMGdkMllOb1FIN1VHWDNDaCs0YnJLZXhZMnp6eUhlbE91WjhVZ1FITGhOWTVHVkVBa3RrM2YxaFJySHQ4bmt5L1lTOGM5Q3pLZnVTU0FmTENIeEVBbUh6QXFxSEd4dVU0c04vMjNxWGNjYlZNSXVJSWtndXVDR0tzZnl2M2t5WGtsbVluN3VlZFJ5aWd3dTU4L3VqSDVoM2lya0NoNU5pV0N2NXlITFYwM2QrUUsvSEdJeTJuUFUwZVE3SFNHK3pKaUwxTG81dDNKbUVLRmplOGJhT3JDNVJXcktjcUNVMm9tSUpqVGZBaElkVkhrUHlQTUgzdThnMGdEOGpnbmVGNVlzWEdQMHRxcWExQTIyclVqVW8zNVhvdHMzaWd5YXgxeHhlblZQbTNjMnFnemQ4VkxCQ0x0L1F4NjhjeWYrNVdYbjQ4c2VTTCtSNmNsUDlRMkhNMkkrdy9nTWlEa0ROOWdET1JhS2QwczMzeCtZclUzVnkyRkVBTCsvQzJmTnVKdkdVRXBRa25JU0JtQ2tKLy9Jd2U5UnZLU2p1a20vRS9WVnJ2amo0Z1Y0QkpFVTN2WmtDNDJIMGFhMHJqVWxvTDRHQlhYN2xHZTJNQ2x0L0VqcDFyTUFMNS9rbEtmMnlZbWdOWWZqYkVZWkp5TlpDa01UZ3RsejMzY1dnd0paTUVCU1NEbDFUY3JKc1ZIK1RuRjB4ZFQxbkkwbDFPdU9GK2gwRzdqc09hWXdzdElJTVZNL04xYmtFZDRYQjFHSmorWVlTNVh1Q3NzWG9rMTlqL1JadjUxNlVlaGtWeEUzNTZBWEdweXhPQmFlS1lyVERTUkM3empJczY3S0R3bTloY0lJSmpUZkFoSWRWSDA2SVBiQzhwenhHZTJtTi9jcE00T2kyQ0t1SkZYbTBnbm95UzJIMnl2elFyWVNMWEJjcWRvanFGQXZ1aHdoY1U3ZVRmbExhTFRweXY1OUN5b3dCcmxDWldBdTYyWmNSQXhxaSt3aWxZOFZNS2xyckRRYjBrZXQ3ZWNZSUVieGd6Y1FvVjh5anI5L0x5clZZVzBRemhFRkRlMm42dDlPNmFGbmwvSGpvSm1ENDBPTUszSVR1b3Z1R0J3RUN5VW1FRC9HRHlHem1hbXJDdldaZDVCVmd3K0E4QXlzaHNTcVh6SFBTWTc1dG5ZUzVnRlJ5QzRoa1o3T0ZoMTVqeDdSSnZjc1FVWjdwTFBpM05iNXRSZWxRQm80Wkd6c3FvSWhYR2pCbmptVmhPVEJtSjJ0eTRUNS8zMlZrdE5tRFlpRmpmT0ZpWVBIbVNOenlqdjBISnkwRi9JTFVsRXJlZ214MzFNMFp6SVJkR0VLS1N4QmNYM3hJL1FCQVJXakVZZ3RONDczaUdlWlJsL2lhU2tIRzNMaXJQV3I5eU1HZWQrcFlBRmNaeWQyVXBwVkgyM3JZdXZDNjJhWGtMUGR6QjNCcm9pYm8vTGk5ZVhnMWlCSW9lSEx3MkRjUGw3RFZYb2x6c2VHcUtBdDFYYlRIR0UzcTk1SXN5UG1CbFkrV1NtSENqYVExZW1YcnNBVDVzM2VpTjJ5Y240UHlkeGluZVdGeitGd0ZCMHZHN2hDM1ppT1VvTUF6VWo0Vk82Z1ZTeHdNTzVDYW5ORlEyNjlaMXFVeC9JZWNJUFdjdlZjcVZBMUNwMDNtN2poSkJjaFhqUkcra2NuTmM5WkVXZzNuaktnZGdNNUZvcDNTemZmS2UvQVQ0YTVxaDFnSHl3aDhSQUpoL2NyUEdxUktlR2czSk9CbHN1YTFmS1pXRXIvQ3kyTXV5ZVNyTFA1a3VoeE5PZXRqamFNcXp6bVZyUTBYVVNWOFgrNEk1Rkx1MFlnbFpYSUdmS2tLSmRySngwNUNiRGEydGhQT0luMkw5V1pXZnp2MWhZb0pTd3lBdWZrM29zenU5VEg4aWZYSDFSN3pPZklrQ21GT2JZNmJrT2RWaE5nNEdJKy9zbU5aTytua1VVWC92d1pHUHFiNXlHUXd5czQ5bDNCOWVVY2ZhRHo1SzBJRU5CaWJ4eEhFcVlFL3BkcUVpeFZsbUxMTDVML0s5UHl2RnpDellMdU90T3FkK1FmV2xNMFp6SVJkR0VLSmdCY0tUbVVlbmlnVUxBblg0L0ZTelBJTGRuYk16WGZGbWZrNFhzbHNXakpjWkRjNjBrU05yc0w5TnRZWitSOSszSEkranBjeFJsaWZuSWhMYTlDcmkvbGlidFZCcEc0cmljSWZBK1c2VE1DK2lidllTdFhsY0ZjcDdzVlEzdGNRVkp6MXRzdExTbDg2VlBQWUQwcEdMNFJFb1NDUDR5WWZjai9vUmdCc0x4cjdiMGJ2M3c2bUwvQURlVXlDcklxbHByWkl1VnBkdGlUTkdjeUVYUmhDaHdwRW1zS0dESDQ4NDJNL0d0cW9ZRmhCWUJGZVVqb1Z1RXl6R3pTeTBDQ3JiNlJUaWpDS1ErOFFFYW9QUDlYcEVsTlZzQnhRbnl2ckprMENQR1hsNVNCalhCTlJsUEduS2hjZnIyQ1A1NXEyb2xqNWliOUpBUFpRMEFnNTM5UEdzOEk3YzAzM3pmd2lxREwvb0hwc1ZxeG5hS1I1Uk5VNjE2S0JyT0lCblM1MkdVdHVUSE5Sdmwwdy91clFhVXFJNDdLWjgwbXhFZG1wRnhreDhnQWEzQzFyWW96eU1vdGhPc1FZR2FSN3dEL1dyRHN4Z1QySmFIeWNMUVNpYjdPR3ZUa2RtZ2NXbUpZME9YaWV1SVd3Z2xSTUdUb0R6VFhpUHRYaThKWEc3N0J0Vm5Ga2JSSU90SENWU3ptaldXdi9UdFhBTnBielJEQVBHSnpYc2Q0TnltaWNTaXRwL21NUmUyOTlxWFJCbkhmTHFlWTRBSkFaQ1lNWWJSbHNlbEw4ZEllTjF0VldmcmFiaFBMTmdHQmRDRXZ2bFRJL0h4bEwrMnRjQlJTVlcvU2VjN1JOTVlzVlkvdGlSdURTbHAxa2t2d3dLTVZIYmk4bm9PN3ZydkdzeU1YSmhReEdyOUNIcjAweEFxYnR5VDBDL2k0a2lQcmRhOUJwOFR2TlFRV1RxUEZrY0R0UkJBZzJjckJjUlMzeER0R005WW54aDNYRktKOG9yb3U4QUhQZjlQNWxMKzRXU2wvZTFSWnI4TmpKelo2V0pDMzFzS0FCWjJsNUtNdXNPRW9vV2pEK2sxL1U1Z2FMKzdhanVIN042YTZXNk03TkZRTVQxdFJZWGFGQjJ2cU1nbWtzYTlWUlVkVG5KV0FId1pMNFZWbEI0cDY3TXFpV1o3VFBpUGlWaHdzVnZnVlFiL0JCMTQybVN6UHRERXBIWDl1K2h2TjNETGNYa2NQa2xSeHliV3R6c2t5QzBHUG9WMS9mUDJ4aDdRTnBWSlJ2UXQ5TWhXVzhzcWUxemk4ZU9GOFVUeUVnZnVDU29ZYmV5eTM5Ym8wQzc0WmNucjJYcmpPZUc5UVllZENYMTJhUDdhMXVXVWZTWEEyem52N1k2b2s0dWw4WU1xRmxqRHZVTG0rRzE2aHdMc2JuWnRRY2VWLzNsN1FNdlhqZklPSlczNS92U3NqY3Q4NG1BVGZtQW1pWW5rbkdxMFFqYTNydzc1a3FmS3FkUzllMVBqNnpPZC9GN0FhdVlnamZ5bC81TTNwN1c4ZWtuZkl6OVRTQUFhY3dnMkQzYVVCQ3RJUlJXR3pQclptTFZpQmMrbW1kcFVFcDVIWHZjVEVJRFJURGFlVXEzTjdha2Y0WUdPVk1BTkpDbzAveC9STjhwMjZla2dOdXZBTVdZRGlxWjdoRWJZSExOU3RhdHRjTmk3cU5senRzOXQvNVl5TzhUVUR1eDdJSnRUOHVMeDQ0WHhSUElTblNMZ0MxRE55SUhnalJiU1hzOTNXVU1kSlU0b0tlU2hVakZMSTJJdTY1WVhqNWJhOUlLRVIyRUpQZ2UxSzJmZjJxSGlBbEtZSDVaYTFyVWxYMkx4TXUwc0M4c0JMdkVpdHhnQ0NwSEFtaTNiQ25IWVpkMDNKbmlLU2g2YzlzalhqbGF6cEZBRHBjN05HV2NLODg2bU14S3VtMFl5d3BYWDJJRkNPRXQ5a053NURnWklZSTV0VVEzTmhSamNEbHZkaytXV2RJUkNzOUtUZExQMlpaQmVJWC9IeFF3NE92aWpXVmpIa2dZL3J5b0ZvS1A4VktCbnBuamhnck9UNXB6OEgvUHY5ZVY4Z3ZGQmxoS0hyT2pSN0psYnpUQ1dKeU1VMXVXVWZTWEEyem5kOTY4dVpmUmlrc2NBWDBJRjlQZjNuMlIrUTBuT0o0VStBMm1qVzdXbWQ3aFBMTmdHQmRDRXBLSnRTK0pZRW1kTXNvMDhucTZBdkEyb2xvUGNEMGFHbDArYlY3czdFNXJuZFNXOXJyYUFJMmRMeHpwa2d6bmNUcUxYQThqdWVhU3JhTjhlMCtPbzBOVVJRV2xFNlg4bjYwOWxQclNHbHR5MFJhbit3M1F0SDRqNyt5WTFrNzZlSkFaOEp4YVFWTEdJSVRNRlM3TXF5OEI3MEVXMkJwd1lNSUpPWGxHZ2FmWDhRUFQ5cURITVFBRzcvWm16aGNwdXpvUk5DVzlxTS9XN2k3ZUxmaTBlV0RPeFBhK3Vwa0M2UlZKeElPN2RZUDZJKy9zbU5aTytuc2crdHgvZTJnS0p0NW9FOU9nZ0RBWjZqbkkrV2E2ckFKUkozOHNyK3pibXhveDFMd3dzNHhlUUQ2OFRnM09uQWd2ZTdQQkdpcldwUk1HVG9EelRYaVAyNGsyWTFCTldHcngxMzlwenhVMTE0dkhqaGZGRThoTDJUMmpVREJXeGlIaTdYeVRBRXorcDgzTHpiWVJoVS9ieVdraDNiRGNUYTMzSnZGa1A4cnJKWnU5YllsVDNrT2lkU2RRYmVYdUFmYS9SVEs5UkFCbWhtOE9PRUp0VEtZK1pndHZEMjlsNSswRTdVc2NQL254MTA1QmtuTytjTitvWnN0MUVieU1WRnYyYWxqWEhMSStKZ0h5d2g4UkFKaDhPcW1GcW1CRmladWI4YzJJMGtqeFREbDNtUlFLT2l2RGxTRVEzNXVmS3BTWEdRM090SkVqYWptYU9HS1JNcmh1RHE2OUwvUGwrQWtLc2NrOUF1YkpWck5kc2tXTEU4OVdxajVzK3lxSEIwUHR6Y0RiWFpzeXNzK21HbUg3a0xOcUluMXhDRDNicnJJVC9DbWJNT2U2ZVppazZBK3pNZSsrb29ZK2dEYmxDRVVrYzBicTgyN1hUU0c5aUs5NEVKL1NvVUlQMXZzeDl5RFBtZGxGK0ZJajlXWitUaGV5V3hhTWx4a056clNSSTJxQ0x1VFV1MzdGWVBUWWg2U2dJWVg2MnhXUFJUZllhT0tjVkhXUEJUdUN2SER1ZDFYb3BXZUhEYVN0Nitvb0xrV3lFbGZJdDNrNEFueVdvR2NvRUxvc0gyRENJbXN1RkhiaFBMTmdHQmRDRXNRaW9GOTlKTnE2Z01GSG82aWJzUHNqbDZlT3l1ditBRlkzdEdIN0E3NkVMb0MvVGcwVW9sdE9pRHJRRU9xWGlDVllISFZhOFlJR2l6amY0b0REeU50ajhxakcvWmZDcmg3YzJJNzNET29pNWxOVjFEMS9ZU29XUjB0c1U0ZkJmbG00TmNUSXFHMFYyV0RkSzU2d2Q3TFB6WmhVUXIxaHVyQTNCRFdQMDVUUU5tbjVUN0crRzJCOG1mb21ZTzJPUXB5eFR0NkVVcUNjVkRTUjZmUnFTN2VMeDQ0WHhSUElTc09oKzRRVys0TVhXL1YvYU5ydkc0RzQvN1RmVEEwajNKRHJHMWZRRGtPZXUxTEtTMElXWHc1Q2hDb0xHWUpGcVpaaW9BNEJPN0ZuYmpPTEVNSTNNdWNtRHkwVG9OdHVvQUs1S0VEZ3k0WDc1bHlDQ3BlOC95dkV0UEd3WkowaGZIOUJLMXhNT3E5OGJSajFSNFFOd2xqUzRzeUVvYWNGem1uSW5DQUtlN2gyeDZOelNtOEIwbzFoZGRZTFY2VXpFamxhenBGQURwYzVCWVdvRFdUbWsrdEcxRjgya2dyVlQxS1daOHZ3dWZoWk1oNWdyR2ZDTUxibEsvZk1QUmhiZm5hL3BJelhLd2lCdnBIaWpzMk1wTHRKU3h6MU5KU1FJVEsybTRidEFGUmp2eHAyYXF0alNSc1B1cEQxT1dpRTB1cjg4S0VlZzdXblhvTWdwRzdkbENRczQvTlVUczhFMXVPdE9xZCtRZldrTUhnMFRheVdJTHlUUGUzTjFQdGh3YWFvaWhLQ0VYSGpqbEV0N01oUWlOK2Q2OEx4UFBUbXp4bis1TWk1S1VFMjV1WWRpaHVQU1VBUVZvbS9ZWFkxZXRZbVI5OGwxbm9ac3Q5cmJ0WU9mWHVETW1LY3Y4TjVTVEsvZ2dmdVBBSHUwYWFpcEZPcHZaMGtnNWRVM0t5YkZXV3JnRU1zMWlzUUoxZW11eUtmUUVCY2loUE9uZHNnUXZNKzB3T2tuYjBBSWRHVXhqSng0NHRDM3dZTVN4SWVkMEllS3pYVFhjNVVoTmhjRWFMNkFsbDZMVUNMQU9NMTVlcHJVa2F0K1Zhc0tTRllSaHFDYnk2NGJqTmVlYVdKL2Z1Y2hncm5aZmZYRlg5cks5WGtPbEhlNHR2S0VXcVFQdnZkTUVZWGJQMFhQeVRINVdidkFWbXVvcEg0VHUwNVJHL25zUUpJYXdDN2k4ZU9GOFVUeUV1ZEhtV1U1SHd0M3JzZ2lsK3JRaUplMUxWbllucnVLb01RU3VJejFpYlArbkdZUERBM2g1TEUxT3g4cHMxcXdOc2NBWDBJRjlQZjM2VXUyOU50Vm9XSFV3Z3JzVXREYzlsU1daTjlxUHRBQzR2SGpoZkZFOGhLbkt4cmJNdFVwYThpdjZvNkkvc2JtNW1tVVBITjA0M293MkZQbXcySjJXbVAxZVFNSGhXUzNmR2p2dWMzUTBJOWpObm9WK2Q2WnZ4THY5RFc2dmR3dGtYK3FTdzh5RGo0MTNQcmUyV0d1MGdGVGtpUXBZWkdlMjZOTTlhL29lYmNCN3ROMS9LWGN6SXIzM29xdlNyK05WRU8wUTNtS1hxMEVCMUhEcVJ1aDY5d2UwUnJ5LzlZcWNITGxiSCtiL3Q5Wm41T0Y3SmJGb3lYR1EzT3RKRWphdU1pVFM4UEwrZGpXMlJPY1RWZEVsOHBENjdVeVNQSXIwWWtjMk5CcGhwTTU5dWlTZi9aUlczd01MeEw5aWcva1dMZzRMVTF1UHBJeG1LbURBT2hYRU9JQ0JRL0pNNCt3LzZJWlR1STViNXNwNzRBanZmenZ4WTR5N2V6VXd6YS9hdGNqMVJrRzdVZ2x4a056clNSSTJzb3l2Z0dDUnkxSmplZU5jdUJ4S3M3T1dwOGkxWmMyZHNNMVBZV3BwbHhHVncvd29nc3AxUlFzWGxOWVF6UEdJZTF4TkowamNsNXAwZ1ZDL3lmQ1dpNjk2UUNOMnJianVHYnMxcTdJTlZ0SGx4N0dOWlZXTzhvR1NTOVVla2JLVXZSTzQxd1hqeU9TRlp2WXkvZGhZaGRtbndia2IwQVZoSjU5dklPYnE2OVZRZ29HdlV2TFF3UUt4WXhZRTNuZ1U3MnRQRjB4Q0UyOEpkalNUNHhmMTFGWjJtZjM0ZjlHOFl4T0VIaUsvekdsYmMybzVNRUR2VUhFMjlUelpQRHY1OEJqK2lzVUpaeVJsNy8zZTB6eVVmZmUwRGdrYUhJbTROZ3pvVzAzdENveU5tbHgraU5KM2VSVzkwdHhSRjN6WHpsSXczc2J4czV0aHRaYkNscExBSVovYXM5cEUyanI4eHp0MVlqKy9LRVY4MS84UnA4SVphTnZEdkNMVXZ4ZVJHQjNHYjE2c2owQTRmUTJHekVVT1pRZ2JoZ2FSZ0VCTzY4MSs2UTJFYWNMTkFnd1grNkZsbE12bWdDWTZDVzNqTVV2bjdDd2tNbmtVL3NCQ1BKYVhOeXpUYWpESjFrWTVRd25jajQ2QlJ3K3d4cUFCM012K1FCZ1BzbUFjSUNGYnBabkRrdmZJRWRmaWx4YXRyMnowSzFIQWljOWR3c2hlVmp3NFNkY2trWXNZaG5mMGZBKzZHY0NCU3pPKzZGYk4vVG9nOXNMeW5QRVBOZGFKUlpOS0hvdHJqdjdVcDlzNk5qTWsreExXbjVpQThKbGdEMzhFUHJmS1QvdjVmTFF6USsxSG1vV1NuQkN5eGhOcXI5aTZPM1pLdjd4REZTNE1RY1JGV3hlbUNBNjJEN0tBdFRMRG1tSlFRL3dJZ0VDaVhMSi92Q3A2S3pPSTZmaXo0bjF4WmxyTitEVmZrWHFaQ0ltV3VLRitWemJHbEhIOTRmeDk2ZndRS2FwRFhxbFEzUjIvZnp3WXczT3g0NFExeUlLOHVmNnNXaGROYmEyM20rWXplNFFiN0EzcW5aamI3SEVjNzhjU3BnVCtsMm9TQ1pQWkh5RWVDbFhybmFjeW5Xd004eUkrL3NtTlpPK25qQzdueis2TWZtSHVWOXlydXdyaTNKZWFYQmxsMjZ4blBrRTk2djBqQ2dlSHlzWlVhUzZ5LzF2dFNVTlpUaDY3SDErWldkRVc3UGM0dkhqaGZGRThoSkNDZ2E5Uzh0REJHM1pUQkNONitSYVVWb0VMUTdLblJSS3RCVVh6SjQwZGVDQTk1ejRVTThXeDNuY3I3WnZacFhLT1pFVjJHOWZhWnJMVHdPU2RSd0VJbVVDTEx3ODd5VTA2VjgrRnlHZzcxRmhEUWJjQlpXOERCNE5FMnNsaUM5RnBrVVU3Ykd1b2cvdDJlWmUvanBHS0ZVa1ZTQnYrZkpacVpiTlhJeHAvbU5oemFSejVlM3l3QW83bVVNK0VOc29kT29oNzkwN0pEcUpTQy9NcGVQT1NVK21WSENmR3p3TXFuM3hqU1ArYnYvZStZc1dtcjFOaUpBZUk5MVVBdWJNdU56a0NxcSt0UEJBcHFrTmVxVkRWbXhwZTZNM2o5NUxXMTdRTEs0c0FpNGlJWUNCcFR4K29pN08wWklBZlZ2VWpmSW04OGRITFJ4S21CUDZYYWhJWThwWTgvak5DaUdxYkdxVVkxcmJZS1JUR0RjTkNDbTd2NmQzVTlxR0tHOU8yV2NOdnhtM0IzYlFRVTlQTGo1ZlZkWHhrZVM3NkxHSW13eXRTSEdUUGpjNDJ4azdFclBtekNoblNSVDk4cXA5L2ZuMW51STBTWWI3eUxwR2JzSHhHNUZvR1U1amlWdnd6SmxlenRSSGQzRXY4MVFrNE0wOVpuK1VtMCtoekI4KzdCQ0dERFA2V0VockVkWEZuNm9iMVZVT1p5Rk91RXNwZEdvN2psN0ZpY2NBWDBJRjlQZjNSYVpGRk8yeHJxSjRpa29lblBiSTE0NVdzNlJRQTZYT0xENUl5dk01OU5YVTljZjU3NlkyQmRubytONlVuajNWRVI5cDZiWlVqVjN3UUthcERYcWxRd0pYRVdjaitmODVSUU5yRFJMR3JZZnJIRXhmdkZreVVKOWxocjl6ZkxpbDUzMENDOTY2RzlwWXNvSldEQVM4L3hEcnMrOEcvaDdhUzVsNVIzL1pFS1lPZjVRUDhsSFYzYlFVQXV2Z3NPTDdzd3lEZTRvdTRIekY3c3pFT2ZZaFE1V3RGUXltTGpOSUxRcmcyWUdYbUltVFd0d3RtMHRzcTE5OW9LSGZYdFFUSzBKZzQ4L3JnU3NCVk1MRlJTTjU0ZWZvaFp0MzBXbVVicEdXcTFZSU5ZVTdUWHVuSHkwU1ppSjZtMXVkYURzbE5tUDZ0anByR1JVQWl2a1Z6RXQ2aFZWendlMm5uZ3FkUnF1ZHAray9DUWdraUh1azJaSU1TKzlvSmxRTTNJM2l4NEFyQzRlOTcxb3VGUzBiOTRKUWxudXRoK3g2blhtK3N3Umk2OGJteVU0MnBRWVdudFVGdUpnSysvU0hFRlBraUhveGp5YW5jQXdqSVBSY29hNmpDUzdzMkE2dGF1ZXZVc0xsZ0ZBZW9OTEE4TS8zSkRrWWRNaWdXWWt0dUYvWW1OZklVdTdVVTRGK2dUbXlQRHZJbklGZTdhNHBkZFlnRmptWW5UbG0vK3FQMjJRNUVCMmc5ZFVuRWFOTGlTMEY4MTZvUTR1blVpWE1CZnp2dThaQU9wOVZPNTR5NkZQb0x6WnQrdE5QZWhNUEU3dlZPM0FzcGVJVlJIbFFwVmtUaHpFUmZxeUZ2TWZpOGVPRjhVVHlFbmxhNTBzQncrMTBURmtzZ24vL29YZzViSmpHcWxsdlU2aW42QlZlTVY0WWhqOGxHOWxQNHBTT3Q4bnlmMGFVdHRrd2s0eWFkMUFaaFZHNU0rNlJ2NUI1QS92NGEwZjRvSS9ZVkdEcExXVi83NjlMcTFGVmhRRFBidjFJZ2xWUithSDBMb3dJWFk5QkZhQk1INzVPVnRQdzRZV2YzSzVYZE5ONGtrNGZzR1lNRXhkWVBEb2FnV1pseFRTZkZoWHpUSGJ3Z3czalBFbGJTdnBJZm1RZHpLRGVNejVHU2IwNEJYTWVtUWtORVAvWjhpM1lUdDdKZGNuTmVvREthb3puY3V5K3pPSFd2L1ZybTdmblVXWWdGZllpOW96blBFU1oyUTNzUCtiMWp6ekdCUlpkWXJHNHBhUzRFL2VPOE5zZGhYRkp1dGNucW5aemx4c0Myd0IxUndGQ3lOaDlWYmRXM2lOVGVMNGNYdmdNWVBYam9SMFgybzV2MUt0UE84cG96N3Yvdlh6V0YvczdrWlhXZFZwN1JRRXVCOU1jdE5seFp0YnlVb3M1U3N6bmg5Yk4wWHQ5QTUrUXpLcDd2ZUxnL1Bya2dzTnBpOTE2U0U3TVhwakhKVzNmbnNXZzY5dGNhM251TWlkY01nMWQ0UnNHditjaFhKK1FYc2hxanY1cGlWT3RDOTFHMXYrTWFzK01Jck9KTFBaeUdDeFdWODFrTk9MeDQ0WHhSUElTSWdsY1piMzN5b0xSVlcyNWNkNVlRZHlEMkgvdk1pS1h1L1lWTFpaOTFoRCs3K1hpWjdiUXFCTUQrSXBHdzd4dzl3SUU2UyswQWgwTE9ERUZSSm5OUmVvQ1oyOThCTzdMNWZlRldQdU1mbjZIU1RSMGFtaFg0TzgveU04aTZlb2NQUGNwQkprNFNrVHg3MEJqeWF4anJRb015MzBCeXZuamxSNmhraXNVeHNEYkJPZ0kwaFFQTFhyUk5KK202ek55bUk2ZTAxeWgyMkV0S1VkMlZYbWpBZmVjN2tYN1QzbzZFWGtoeGFYOHJZMTIwRUZQVHk0K1g5K2pyOTNtV0pWcjdGcW1sbG1vVVNUajZyN2xyWmZoaVBZSENvMi9IWHdFZm5sRVU0V3A3REgzT2xOak51bzBkS09WKzNoYXU1OTRmTkxIY25HR29uMWt1QlJ0ZEpjV3haWXVKeDRac2RuV1FvUnIyZlNma1IvL3REbnNZampDcVVWTElMK0haNGw2KzhJdDZtaEE3R0wrZUJFenlDeWd6YTc2WE9lVVFaRWxwUlhYUW4xY1h1akV5bmw5aURjRzlsZStMSFU3U1BRZkU2T1IyVGdyZHViaUZZRDdLMUJpb3l3WEljTGtQbHVIUEJ1UENxczh4QXFZQ3Z2MGh4QlQ1RlNKdXovTFMwOVdGTkJDeDM4b1pWNVhBcVVsSjBFRVlBTS9uaEh5RmgwWXFJTEswcnI1ZTRrTitYZUFaMW1CRkdxZXREWmJnait4ZTJiaVBnUSs3SVYzUitRaXR2OFoxditMRFpVOW1wcStabnhieWlJZDB2UmpMMk0wSEROSUxHMkJRWUMySUl0SGpSdXlhdENKZVYxNDkxWXc0aHV3RzQwbjF1L1JGa1dwK0FuUGdHdFJiYklZUmZEanhRQzRyK05semNPVWlJLys3M0gybDJhYmhNZUpUZE4yVTVRSk9uOGlQS1RXRlZmM1pXdnI5c2J0S1duKytaa0hPR3lGUXpqSUthSjk1bWpUMVRtQklrem4yQnlRVVFaYUtlZFVvcnR6WWpEeWYyQnFiUzkwMDR5TDlDbVJ4TmV0Sm5yLzJrZ0pUa0FaZnNPK3ZSYmIxd2hHWHRTYVRIMHFjaWhEV0NuTzdld0IvQ01ua3RqaDFVQ1prem5pd2JYd0VUQnJENGdmK3o2bnpzb2RDYkYyQllFdElSR1A0ZEZHaXMrUStyVFFRYzlPZ0RzMmx3Vy9GcDhkRG9TeElLeHhYc3FyVnZndE1SWGxuN0piV0RsUjhGTWZwWmZlblJaa01ad0MvZWhubVpFUXkwNUJBRWtRa1VmWTJ0RkJ0VzhndHlMWTU0WG93MXNseXRUYjF1NFVySURBdjhQL3hKaHkzYnNtRlZma1ZzcW02OUJXY3RnWFNpcXJva2VrWTZKbFJwU3JxRC95d0JXK1hCYWpvV2l1Nk9wSDhmbTRUeXpZQmdYUWhLQnkvL3FKckN4c3F3bWEvd1FCN3pKZndUc3JqaFBLM0NqK29VM1Q3dUNVdnJnZHJYY2pCSGErOTNyaDZMOGpzUm40dGU5M1R3dzVjdlI4Z0tJNVRZQWhuNEVLY3lxYWNSNW9mL0pxUnZ3MWpsYXpwRkFEcGM3eW9jU0ZVZko1WTVERW9uWDRseTlOOXNybGl4VUppaUpGVnlTanFnZ25OV1BLK3ZtOUNTYWowMjVsS2EzcVZCMXJZb0hDWWZWeEhZdjlQV1lJNS9PZUN2RDBGQndCaXNsYlJBUGVMdi9scFYzNjdrUWtsWkFtRHRyOWRRSzJsK2RoL2M0TDRlSHUrd3d1ZHRrZkh4RzFUQ3NQdnV2cmRYaUZ4czN6UWdYM0dOeExMbjdaaFNsN2syclh0Qkc1MlNla29TM1VSQS9HVVFWbnc4cUFhOG1qdUV1RS82bVUwSDdJaVdSb2I2SDBOYmYyRUdwdE5tQ2FySWk4TkxNV0drbGFZZXROLzIyRDYzanhBRldaK3haT1pOY3hQZVdnSGgvaVA0WEE5azJjZ3RUdi9GK2g1NzVSSjVSbDhnb01mb1ZtZU5sR1RCL1dya0hNVGtPSjVEMzVnTWpYWjczdHRhcmthRmNTbis4YmhzTjdwbHdkWS9BUkY0NHlLbEp5RFQwL0Q3TlMzTk40RnJQb1YvbTFjaStiSVg2VjdLcE5QUVZMcDFCWGtwdUZHVWtnNWRVM0t5YkZOeFR2K3g5cFdHOUJPMUxIRC81OGRUbkVHSlJKS3lKYTZEQUNmZWVhdFVTMmxHREdSNHNzWUlCOHNJZkVRQ1lmRS9BaVVVNUR5K2hIS0x1MktEc3gwUjA1dXZQSE1DSVNOU1RKdnVXdzRrWkJjTUs1QklKOEV0Y1JFajZtWjNjNVU4ZjF1QnFzeEpLdGUxYXIwTjVxajBCcWYzQkhjV1U4UGlJRHdFQVNYanVOdGY2YmtkMGxVQ09wVDA2U2JhTjN3VElPOC9WcXBYbCtzV0F5ekIyL213L0F5ZE9tR203aW5qMXpRR2RTRDFwdUlWcU1mMXpCWVpUdnczdGY0eXRHQlQwdDcwU1pUU3AzU0Q2Slk0WU5EcGxiems5bU81b2M1NkRpNGFmeDlpZlRCVHZJb1RROGV6T1MvL1FMTDZzd0JwK1V3NDdrZVdndVJiSVVLMXhYbHFpMUtOajRySWppZXpXb1pTM3NiUlFwenUzc0Fmd2pKOEJibUZQWnNVWUZwYVNKZ1Jjd3dIKzRUeXpZQmdYUWhMOUl1aGhDTmJsMnJPRGtta004aWhvaUpSb1JwUW9ZTmxrY21JaW9ESzVhVEkzTTZ4RHNqRFRUd1J0Sk9DR2RrQTdyeEVQTmZRcDNPYkoyRGx4d0w3OUd6N3o1RnczeU9pRFh4dzhsQmhtSHFldEo5VzJBc3pXSSsvc21OWk8rbm0vRnJ4Mnp6ZUlJbjlZUHZVblk0ejN2OEFBSjU4MEZrVjdLb01McDk5S2hUTWRITGdpVXVGU1ZYTWZDZlJjTmVHRzhYRTBmeXlONHhadlpSS1Rpc2VjcHNaUW9kSkVFekVBcVJUUDc4UFlFenhPWTlEZ1MxZ1RmRmVnNjVGZEJjZ214ZGdXQkxTRVJ5T3B6c01sWHNYWGNuTXZ2ZnM0RkgyTGJabnhpMkxCbURDNTIyUjhmRWJXemV3TnU0RzlqdXBRWi9hUFdoOGk3eTF4RDBpeUF4Vlc2Sit1K00wQ1FSZWQrREtPTEZGM2hZS0dUQ2FzanFFR3lnWi9wYTFVQm5VZnRDcjAvdEFQQitFWTRidHlBT1ozZG80K242bDBMUkN4bDVIelU2K3pHOEVDbXFRMTZwVU5JUzByWnhhNEQxMDd1bHo0M1hDdExseGVybXEycmt4T0g5UVlNMFhwOVNhQ0dUWjNWTU9CNjZvamVFTGtwMTV1MzBPamtiUzNhek0vZW5zRklJc3lqNmVobnhpR0tTU1RGY3QrQ01RL1psdGs2YTcvZi85UVZoQ2E3UTVwMDJlSnJZb0hDWWZWeEhhNXlkdkxkaFlCODR2SGpoZkZFOGhMblI1bGxPUjhMZDFWa0J3anN0Y0R5djh1dXE1N3F3Q3I3em41cy9YYlJWbS9KcDQ2aU03eGJJbmtzc1h0TGo5cXk0d3pRZ1lFVUdRREo1SnhhRGdWZE1HYjlTL3I1OFg5WlllKzVsYjNtaE1XcEJndklxRnd6MDlJblZoMk9Kc1lJbEpSaDYveERyTFc4OTdGY25meERDZGJ3MHZldHBMeFZKNnJxZGdCblhuOUJBWHRwRXVQaHNPUTBpenhmTXlwcE43N283Ynl1Z29qNyt5WTFrNzZlZWZQMXU2NkdQZUlnTGRqTHlZdjltbml3OTMydFRhUEwxTnJQYktXaEtKR1pqTGp6TC9Qdno3a0hESGZQekFzQmp4WkhBN1VRUUlONVZJWkRTWTVWOElCOHNJZkVRQ1lmZ0FJTkVUTS9ML3o1ZWk2TnVYeFVkbmpXL2dHQmZnODZuQTFLeWdIN0tqU1RPRzVPa1NYK0puZUtJSHZZTldTdWlQdjdKaldUdnA3RGRYZnJ2Y2hjYzZPclhOYVQrb29UT25CV0llUHJUQUJGNzhabkxuYnhoQjlEdzhoVS94Q0hFMUN1ZUhPOVowN3o0S0E3UTJmYS9Ocm5TODFQemtqYlpSSUcwMC9rU2c1bHdDZnBPUEs0elhLaThDeWYwdC9qMUJKLzA5VzUxMURhRnZSVGpwQTZ3SjJMMVI3aGtCTmF4bC9nY24randJSkhSOG8xRlRyQnFLOE8vd3JGSWdxU0l6QWtubHAzSGxFY0x6eC9nTktvNTVLRm50MVRPa0FHYXk1UDBRR1dQNkZKSU9YVk55c214ZUVBcUY0dzZsUjNlcnBIeW1QT3ZKZ0IvdnE2eFljek5NQXgzS3RDNjQ4dmdHaWgwdER1MmxINzF4S1lOYS90UWEwMlpIM0FFS2JHbjlZUHZVblk0ejNuUjVsbE9SOExkNUZkY3JSVTNUbzNJNk1xQ0g2TkI3ZGFpenRud1pjbVRSQ0FFalMrcTVHdWV1MXN3YkFwcHFtL2xpYnRWQnBHNGhjdVhnaFdwY0ZRMzJnSkZsTE52M2tiL01OQU14cXAvNXJMNkZuM3BGNU9qM0U0SmlRZ1R3blVROEdkZWd2Y29haml3TnFUNVphT2dIeXdoOFJBSmg5QS8vRWdIWTUwWmZUNGNkNURTVUFJOEpqd25oTUVwTnk3eGNCRE5uYlNLbDBUMnlzOVduTUsySkV5WFVLTGJ3V3dlc2dXUHAyZ1NkTlF1bXJ4VlVGTE0renRiRkxIdmp4VGZ1c0FNN3NKZDhBZHNJME9nRnBrd3JDdmdPb0toRytyOFB1dzFIWmpXYlA5L2k3U01mZGpkVTMrWFluVTY3M2k4ZU9GOFVUeUVvYW14dk45N3JrT3B2cXR3SzNyRkZmZDJ4clBxa3hocHkyYVpKQUpqSkovVXdNK0NheUhrNjBEZENGK3dGaXNMOEl2STNPa2FiU1ZYa3VaZVdpUklrSnJZb0hDWWZWeEhSWm56ZXFaYkl6WnVPdE9xZCtRZldsTTBaeklSZEdFS096QjZEVS8yUU8weFk2OW1MbHdlK3gvTGJLeERPS0UxZXUxbUJja3VDNE9GcWJORFNpWFRGT09Wck9rVUFPbHpwMHZ0OHBLVmliQ2J6b2FWVzYxaFV2bm1JZjYxZEFsOHlPaktnaCtqUWUzMnlyYWVFRlA5SWxueGd6K0REQzhpK3ZDZG5MOWw3Wk9XV3JnRU1zMWlzUjIwRUZQVHk0K1g3N00xb2ZZRmVJQ0kreE11MUp4SVFiRzRqcVB4MHM3UXZmWk1GV0xqRkhwOWtFRnM1OENsNUF1bXdvUkdwWmZ1NVY4TktXdlRJczVWUGQva3RGR1MrTWt6bVkwZGhRRTlZWUpvelFwcDk1VE1WU3AramFIcCtNMWtlU21INDJlK1M5UzJMTDZXQzY3WS9uNW9ZWGNSSzgwWlZYazdESEhDNUVFMWE0eDZKUklQQURjN1F6S2loK3dDK0RqK1BXczVzajZXbzVQMGFxN2lnaFNxZ2tQMnNHQXhJQWl1TjQ1WUZjbnpLQ1daV3BUaUQ0OG5JeWFzY251c3ZwUG5IczBISE1tcnAranBhanc2OXNGNlF1UXhBOEdZdlpZUHpzb3NlWjE3b0ZDUnc3N2dIeXdoOFJBSmgrcWZhdXU0RG4xRFd4MEhRS3owQXB2OWk0RDM0blRtRjJRa1d6Z2t0aUg3eUw5ZHhQSmRWbkFoTUVWdWMwWWxrZkI4RWF1VHUxQzZ0TU52TjlIYk9XRW9raU1kTWhLSG5HSWxaNnpucXlIbUtWckw3QlgrQ3YwZllXSUZuUXJVdmNETnE3Tkk5N0JoUEY2VWFIOThiWDJub3ZEN2dMbTdOM1prZVZpb2k0QzlBWmk5bGcvT3lpeGc5Qys4RmRISXNGcTlWV3NQMGFBZDdneTFsL3YzL1FzL2ljcVl1NzNsdEh2dFNjTW4wUEYzYU5EWUlvcjJZTWJHTUZOSkJLVWpHRk0wWnpJUmRHRUtCOUhwTnVsSER1VDJ6TjgxQU1zcDljVTBhd3lxNjlrNldmcE5TY0l1WUJRNDFscjN2MVVHRHZINmF2a2FTNDFROHBFSXlzSlpUZmljR21idVJBclRsTnd0VGtZREdFKzRsMUY5TUp1NjZiOFc4citiRlJHc3dobzN2LytKQmJBa2FQM0kzdEFGeG5WTnRweWNMNVJ1SGNPVU93SmtVdnVyWlpGRHlvWGdINkxzbXBSUm9GYmNYenduTm91OE5ZdUp0V3lpaWp3SFpQRnd6SmpZampQbG81cmtaSVFJYkxwclZCdjFqUXg1U3BDakdTMWxQRTN0NWtPam05eGN2dUlpYUNDZDhoVGxnL0RyZzBQMUZRcFAvWkdSN3NNYTg0NDRDT1MwNTBEd3BCb2gzdnhmaXBVUExSUnZmbW45anZTRzlxc0RTaTJOV0o0Z1luTG4veGxHQUhLMTZXb0FWRmVJMUVXSDdEV2lIOW4wRUE2VDAza0I3azdTT0s3bS95YkZxNmxoQWF3R2wyM3pSRFUzQTJBZ3M1YlBHL2REblJyYTNhTVA5YmRzdmZCSE05c1paTm5STTQ9bQCqdhFScKiWJc_2nQhAG3LW7viPbIKF"

GO Code,无法解密加密数据

import (
    "crypto/md5"
    "encoding/base64"
    "errors"
    "fmt"
    "github.com/forgoer/openssl"
)

func main() {
    encryptData := ""
    data := encryptData[:len(encryptData)-32]
    key := encryptData[len(encryptData)-32:]
    key = fmt.Sprintf("%x", md5.Sum([]byte(key)))
    rawData, err := base64.StdEncoding.DecodeString(data)
    if err != nil {
        fmt.Println(err.Error())
        return
    }
    deData, err := openssl.DesECBDecrypt(rawData, []byte(key), openssl.PKCS7_PADDING)
    if err != nil {
        fmt.Println(err.Error())
        return
    }
    fmt.Println(string(deData))
}

PHP代码,可以成功解密$encryptData

$encryptData= "";
$key=substr($encryptData,-32);
$data=substr($encryptData,0,strlen($encryptData)-32);
$key=md5($key);
$data=base64_decode($data);
$result=openssl_decrypt($data,"DES-ECB",$key, 0);
var_dump($result);

请帮助我,我真的很想知道原因

php go openssl des cryptdecrypt
1个回答
0
投票

这是一个有趣的谜题 - 我假设您已经以这种格式编码数据并且不打算生成更多 - 正如其他人所说,它不安全。

这应该可以解决问题,给你《海上风云》第30章:

package main

import (
    "crypto/des"
    "crypto/md5"
    "encoding/base64"
    "encoding/hex"
    "fmt"
    "log"
)

const encryptData = "ZithNDRYL0s4WmRhREZWUXFvVzNGdjk0V3YzRnlWV3ZIMGVrMjZVY081T1FxVkx2dVg0R0FHKzBJSGFLRTYzYVZlbW1TQkt6R010OStUT3BCbkpvaDExS0pOa0YxVWw5dC8zYWNKUFdremZMcGZ3MHFKYnlFL3FMQVZaZmt4bEZlUTRxVEZvWTIvUnkxbGlyWmZNdllKdFhEVFE0eUFLMGdkMllOb1FIN1VHWDNDaCs0YnJLZXhZMnp6eUhlbE91WjhVZ1FITGhOWTVHVkVBa3RrM2YxaFJySHQ4bmt5L1lTOGM5Q3pLZnVTU0FmTENIeEVBbUh6QXFxSEd4dVU0c04vMjNxWGNjYlZNSXVJSWtndXVDR0tzZnl2M2t5WGtsbVluN3VlZFJ5aWd3dTU4L3VqSDVoM2lya0NoNU5pV0N2NXlITFYwM2QrUUsvSEdJeTJuUFUwZVE3SFNHK3pKaUwxTG81dDNKbUVLRmplOGJhT3JDNVJXcktjcUNVMm9tSUpqVGZBaElkVkhrUHlQTUgzdThnMGdEOGpnbmVGNVlzWEdQMHRxcWExQTIyclVqVW8zNVhvdHMzaWd5YXgxeHhlblZQbTNjMnFnemQ4VkxCQ0x0L1F4NjhjeWYrNVdYbjQ4c2VTTCtSNmNsUDlRMkhNMkkrdy9nTWlEa0ROOWdET1JhS2QwczMzeCtZclUzVnkyRkVBTCsvQzJmTnVKdkdVRXBRa25JU0JtQ2tKLy9Jd2U5UnZLU2p1a20vRS9WVnJ2amo0Z1Y0QkpFVTN2WmtDNDJIMGFhMHJqVWxvTDRHQlhYN2xHZTJNQ2x0L0VqcDFyTUFMNS9rbEtmMnlZbWdOWWZqYkVZWkp5TlpDa01UZ3RsejMzY1dnd0paTUVCU1NEbDFUY3JKc1ZIK1RuRjB4ZFQxbkkwbDFPdU9GK2gwRzdqc09hWXdzdElJTVZNL04xYmtFZDRYQjFHSmorWVlTNVh1Q3NzWG9rMTlqL1JadjUxNlVlaGtWeEUzNTZBWEdweXhPQmFlS1lyVERTUkM3empJczY3S0R3bTloY0lJSmpUZkFoSWRWSDA2SVBiQzhwenhHZTJtTi9jcE00T2kyQ0t1SkZYbTBnbm95UzJIMnl2elFyWVNMWEJjcWRvanFGQXZ1aHdoY1U3ZVRmbExhTFRweXY1OUN5b3dCcmxDWldBdTYyWmNSQXhxaSt3aWxZOFZNS2xyckRRYjBrZXQ3ZWNZSUVieGd6Y1FvVjh5anI5L0x5clZZVzBRemhFRkRlMm42dDlPNmFGbmwvSGpvSm1ENDBPTUszSVR1b3Z1R0J3RUN5VW1FRC9HRHlHem1hbXJDdldaZDVCVmd3K0E4QXlzaHNTcVh6SFBTWTc1dG5ZUzVnRlJ5QzRoa1o3T0ZoMTVqeDdSSnZjc1FVWjdwTFBpM05iNXRSZWxRQm80Wkd6c3FvSWhYR2pCbmptVmhPVEJtSjJ0eTRUNS8zMlZrdE5tRFlpRmpmT0ZpWVBIbVNOenlqdjBISnkwRi9JTFVsRXJlZ214MzFNMFp6SVJkR0VLS1N4QmNYM3hJL1FCQVJXakVZZ3RONDczaUdlWlJsL2lhU2tIRzNMaXJQV3I5eU1HZWQrcFlBRmNaeWQyVXBwVkgyM3JZdXZDNjJhWGtMUGR6QjNCcm9pYm8vTGk5ZVhnMWlCSW9lSEx3MkRjUGw3RFZYb2x6c2VHcUtBdDFYYlRIR0UzcTk1SXN5UG1CbFkrV1NtSENqYVExZW1YcnNBVDVzM2VpTjJ5Y240UHlkeGluZVdGeitGd0ZCMHZHN2hDM1ppT1VvTUF6VWo0Vk82Z1ZTeHdNTzVDYW5ORlEyNjlaMXFVeC9JZWNJUFdjdlZjcVZBMUNwMDNtN2poSkJjaFhqUkcra2NuTmM5WkVXZzNuaktnZGdNNUZvcDNTemZmS2UvQVQ0YTVxaDFnSHl3aDhSQUpoL2NyUEdxUktlR2czSk9CbHN1YTFmS1pXRXIvQ3kyTXV5ZVNyTFA1a3VoeE5PZXRqamFNcXp6bVZyUTBYVVNWOFgrNEk1Rkx1MFlnbFpYSUdmS2tLSmRySngwNUNiRGEydGhQT0luMkw5V1pXZnp2MWhZb0pTd3lBdWZrM29zenU5VEg4aWZYSDFSN3pPZklrQ21GT2JZNmJrT2RWaE5nNEdJKy9zbU5aTytua1VVWC92d1pHUHFiNXlHUXd5czQ5bDNCOWVVY2ZhRHo1SzBJRU5CaWJ4eEhFcVlFL3BkcUVpeFZsbUxMTDVML0s5UHl2RnpDellMdU90T3FkK1FmV2xNMFp6SVJkR0VLSmdCY0tUbVVlbmlnVUxBblg0L0ZTelBJTGRuYk16WGZGbWZrNFhzbHNXakpjWkRjNjBrU05yc0w5TnRZWitSOSszSEkranBjeFJsaWZuSWhMYTlDcmkvbGlidFZCcEc0cmljSWZBK1c2VE1DK2lidllTdFhsY0ZjcDdzVlEzdGNRVkp6MXRzdExTbDg2VlBQWUQwcEdMNFJFb1NDUDR5WWZjai9vUmdCc0x4cjdiMGJ2M3c2bUwvQURlVXlDcklxbHByWkl1VnBkdGlUTkdjeUVYUmhDaHdwRW1zS0dESDQ4NDJNL0d0cW9ZRmhCWUJGZVVqb1Z1RXl6R3pTeTBDQ3JiNlJUaWpDS1ErOFFFYW9QUDlYcEVsTlZzQnhRbnl2ckprMENQR1hsNVNCalhCTlJsUEduS2hjZnIyQ1A1NXEyb2xqNWliOUpBUFpRMEFnNTM5UEdzOEk3YzAzM3pmd2lxREwvb0hwc1ZxeG5hS1I1Uk5VNjE2S0JyT0lCblM1MkdVdHVUSE5Sdmwwdy91clFhVXFJNDdLWjgwbXhFZG1wRnhreDhnQWEzQzFyWW96eU1vdGhPc1FZR2FSN3dEL1dyRHN4Z1QySmFIeWNMUVNpYjdPR3ZUa2RtZ2NXbUpZME9YaWV1SVd3Z2xSTUdUb0R6VFhpUHRYaThKWEc3N0J0Vm5Ga2JSSU90SENWU3ptaldXdi9UdFhBTnBielJEQVBHSnpYc2Q0TnltaWNTaXRwL21NUmUyOTlxWFJCbkhmTHFlWTRBSkFaQ1lNWWJSbHNlbEw4ZEllTjF0VldmcmFiaFBMTmdHQmRDRXZ2bFRJL0h4bEwrMnRjQlJTVlcvU2VjN1JOTVlzVlkvdGlSdURTbHAxa2t2d3dLTVZIYmk4bm9PN3ZydkdzeU1YSmhReEdyOUNIcjAweEFxYnR5VDBDL2k0a2lQcmRhOUJwOFR2TlFRV1RxUEZrY0R0UkJBZzJjckJjUlMzeER0R005WW54aDNYRktKOG9yb3U4QUhQZjlQNWxMKzRXU2wvZTFSWnI4TmpKelo2V0pDMzFzS0FCWjJsNUtNdXNPRW9vV2pEK2sxL1U1Z2FMKzdhanVIN042YTZXNk03TkZRTVQxdFJZWGFGQjJ2cU1nbWtzYTlWUlVkVG5KV0FId1pMNFZWbEI0cDY3TXFpV1o3VFBpUGlWaHdzVnZnVlFiL0JCMTQybVN6UHRERXBIWDl1K2h2TjNETGNYa2NQa2xSeHliV3R6c2t5QzBHUG9WMS9mUDJ4aDdRTnBWSlJ2UXQ5TWhXVzhzcWUxemk4ZU9GOFVUeUVnZnVDU29ZYmV5eTM5Ym8wQzc0WmNucjJYcmpPZUc5UVllZENYMTJhUDdhMXVXVWZTWEEyem52N1k2b2s0dWw4WU1xRmxqRHZVTG0rRzE2aHdMc2JuWnRRY2VWLzNsN1FNdlhqZklPSlczNS92U3NqY3Q4NG1BVGZtQW1pWW5rbkdxMFFqYTNydzc1a3FmS3FkUzllMVBqNnpPZC9GN0FhdVlnamZ5bC81TTNwN1c4ZWtuZkl6OVRTQUFhY3dnMkQzYVVCQ3RJUlJXR3pQclptTFZpQmMrbW1kcFVFcDVIWHZjVEVJRFJURGFlVXEzTjdha2Y0WUdPVk1BTkpDbzAveC9STjhwMjZla2dOdXZBTVdZRGlxWjdoRWJZSExOU3RhdHRjTmk3cU5senRzOXQvNVl5TzhUVUR1eDdJSnRUOHVMeDQ0WHhSUElTblNMZ0MxRE55SUhnalJiU1hzOTNXVU1kSlU0b0tlU2hVakZMSTJJdTY1WVhqNWJhOUlLRVIyRUpQZ2UxSzJmZjJxSGlBbEtZSDVaYTFyVWxYMkx4TXUwc0M4c0JMdkVpdHhnQ0NwSEFtaTNiQ25IWVpkMDNKbmlLU2g2YzlzalhqbGF6cEZBRHBjN05HV2NLODg2bU14S3VtMFl5d3BYWDJJRkNPRXQ5a053NURnWklZSTV0VVEzTmhSamNEbHZkaytXV2RJUkNzOUtUZExQMlpaQmVJWC9IeFF3NE92aWpXVmpIa2dZL3J5b0ZvS1A4VktCbnBuamhnck9UNXB6OEgvUHY5ZVY4Z3ZGQmxoS0hyT2pSN0psYnpUQ1dKeU1VMXVXVWZTWEEyem5kOTY4dVpmUmlrc2NBWDBJRjlQZjNuMlIrUTBuT0o0VStBMm1qVzdXbWQ3aFBMTmdHQmRDRXBLSnRTK0pZRW1kTXNvMDhucTZBdkEyb2xvUGNEMGFHbDArYlY3czdFNXJuZFNXOXJyYUFJMmRMeHpwa2d6bmNUcUxYQThqdWVhU3JhTjhlMCtPbzBOVVJRV2xFNlg4bjYwOWxQclNHbHR5MFJhbit3M1F0SDRqNyt5WTFrNzZlSkFaOEp4YVFWTEdJSVRNRlM3TXF5OEI3MEVXMkJwd1lNSUpPWGxHZ2FmWDhRUFQ5cURITVFBRzcvWm16aGNwdXpvUk5DVzlxTS9XN2k3ZUxmaTBlV0RPeFBhK3Vwa0M2UlZKeElPN2RZUDZJKy9zbU5aTytuc2crdHgvZTJnS0p0NW9FOU9nZ0RBWjZqbkkrV2E2ckFKUkozOHNyK3pibXhveDFMd3dzNHhlUUQ2OFRnM09uQWd2ZTdQQkdpcldwUk1HVG9EelRYaVAyNGsyWTFCTldHcngxMzlwenhVMTE0dkhqaGZGRThoTDJUMmpVREJXeGlIaTdYeVRBRXorcDgzTHpiWVJoVS9ieVdraDNiRGNUYTMzSnZGa1A4cnJKWnU5YllsVDNrT2lkU2RRYmVYdUFmYS9SVEs5UkFCbWhtOE9PRUp0VEtZK1pndHZEMjlsNSswRTdVc2NQL254MTA1QmtuTytjTitvWnN0MUVieU1WRnYyYWxqWEhMSStKZ0h5d2g4UkFKaDhPcW1GcW1CRmladWI4YzJJMGtqeFREbDNtUlFLT2l2RGxTRVEzNXVmS3BTWEdRM090SkVqYWptYU9HS1JNcmh1RHE2OUwvUGwrQWtLc2NrOUF1YkpWck5kc2tXTEU4OVdxajVzK3lxSEIwUHR6Y0RiWFpzeXNzK21HbUg3a0xOcUluMXhDRDNicnJJVC9DbWJNT2U2ZVppazZBK3pNZSsrb29ZK2dEYmxDRVVrYzBicTgyN1hUU0c5aUs5NEVKL1NvVUlQMXZzeDl5RFBtZGxGK0ZJajlXWitUaGV5V3hhTWx4a056clNSSTJxQ0x1VFV1MzdGWVBUWWg2U2dJWVg2MnhXUFJUZllhT0tjVkhXUEJUdUN2SER1ZDFYb3BXZUhEYVN0Nitvb0xrV3lFbGZJdDNrNEFueVdvR2NvRUxvc0gyRENJbXN1RkhiaFBMTmdHQmRDRXNRaW9GOTlKTnE2Z01GSG82aWJzUHNqbDZlT3l1ditBRlkzdEdIN0E3NkVMb0MvVGcwVW9sdE9pRHJRRU9xWGlDVllISFZhOFlJR2l6amY0b0REeU50ajhxakcvWmZDcmg3YzJJNzNET29pNWxOVjFEMS9ZU29XUjB0c1U0ZkJmbG00TmNUSXFHMFYyV0RkSzU2d2Q3TFB6WmhVUXIxaHVyQTNCRFdQMDVUUU5tbjVUN0crRzJCOG1mb21ZTzJPUXB5eFR0NkVVcUNjVkRTUjZmUnFTN2VMeDQ0WHhSUElTc09oKzRRVys0TVhXL1YvYU5ydkc0RzQvN1RmVEEwajNKRHJHMWZRRGtPZXUxTEtTMElXWHc1Q2hDb0xHWUpGcVpaaW9BNEJPN0ZuYmpPTEVNSTNNdWNtRHkwVG9OdHVvQUs1S0VEZ3k0WDc1bHlDQ3BlOC95dkV0UEd3WkowaGZIOUJLMXhNT3E5OGJSajFSNFFOd2xqUzRzeUVvYWNGem1uSW5DQUtlN2gyeDZOelNtOEIwbzFoZGRZTFY2VXpFamxhenBGQURwYzVCWVdvRFdUbWsrdEcxRjgya2dyVlQxS1daOHZ3dWZoWk1oNWdyR2ZDTUxibEsvZk1QUmhiZm5hL3BJelhLd2lCdnBIaWpzMk1wTHRKU3h6MU5KU1FJVEsybTRidEFGUmp2eHAyYXF0alNSc1B1cEQxT1dpRTB1cjg4S0VlZzdXblhvTWdwRzdkbENRczQvTlVUczhFMXVPdE9xZCtRZldrTUhnMFRheVdJTHlUUGUzTjFQdGh3YWFvaWhLQ0VYSGpqbEV0N01oUWlOK2Q2OEx4UFBUbXp4bis1TWk1S1VFMjV1WWRpaHVQU1VBUVZvbS9ZWFkxZXRZbVI5OGwxbm9ac3Q5cmJ0WU9mWHVETW1LY3Y4TjVTVEsvZ2dmdVBBSHUwYWFpcEZPcHZaMGtnNWRVM0t5YkZXV3JnRU1zMWlzUUoxZW11eUtmUUVCY2loUE9uZHNnUXZNKzB3T2tuYjBBSWRHVXhqSng0NHRDM3dZTVN4SWVkMEllS3pYVFhjNVVoTmhjRWFMNkFsbDZMVUNMQU9NMTVlcHJVa2F0K1Zhc0tTRllSaHFDYnk2NGJqTmVlYVdKL2Z1Y2hncm5aZmZYRlg5cks5WGtPbEhlNHR2S0VXcVFQdnZkTUVZWGJQMFhQeVRINVdidkFWbXVvcEg0VHUwNVJHL25zUUpJYXdDN2k4ZU9GOFVUeUV1ZEhtV1U1SHd0M3JzZ2lsK3JRaUplMUxWbllucnVLb01RU3VJejFpYlArbkdZUERBM2g1TEUxT3g4cHMxcXdOc2NBWDBJRjlQZjM2VXUyOU50Vm9XSFV3Z3JzVXREYzlsU1daTjlxUHRBQzR2SGpoZkZFOGhLbkt4cmJNdFVwYThpdjZvNkkvc2JtNW1tVVBITjA0M293MkZQbXcySjJXbVAxZVFNSGhXUzNmR2p2dWMzUTBJOWpObm9WK2Q2WnZ4THY5RFc2dmR3dGtYK3FTdzh5RGo0MTNQcmUyV0d1MGdGVGtpUXBZWkdlMjZOTTlhL29lYmNCN3ROMS9LWGN6SXIzM29xdlNyK05WRU8wUTNtS1hxMEVCMUhEcVJ1aDY5d2UwUnJ5LzlZcWNITGxiSCtiL3Q5Wm41T0Y3SmJGb3lYR1EzT3RKRWphdU1pVFM4UEwrZGpXMlJPY1RWZEVsOHBENjdVeVNQSXIwWWtjMk5CcGhwTTU5dWlTZi9aUlczd01MeEw5aWcva1dMZzRMVTF1UHBJeG1LbURBT2hYRU9JQ0JRL0pNNCt3LzZJWlR1STViNXNwNzRBanZmenZ4WTR5N2V6VXd6YS9hdGNqMVJrRzdVZ2x4a056clNSSTJzb3l2Z0dDUnkxSmplZU5jdUJ4S3M3T1dwOGkxWmMyZHNNMVBZV3BwbHhHVncvd29nc3AxUlFzWGxOWVF6UEdJZTF4TkowamNsNXAwZ1ZDL3lmQ1dpNjk2UUNOMnJianVHYnMxcTdJTlZ0SGx4N0dOWlZXTzhvR1NTOVVla2JLVXZSTzQxd1hqeU9TRlp2WXkvZGhZaGRtbndia2IwQVZoSjU5dklPYnE2OVZRZ29HdlV2TFF3UUt4WXhZRTNuZ1U3MnRQRjB4Q0UyOEpkalNUNHhmMTFGWjJtZjM0ZjlHOFl4T0VIaUsvekdsYmMybzVNRUR2VUhFMjlUelpQRHY1OEJqK2lzVUpaeVJsNy8zZTB6eVVmZmUwRGdrYUhJbTROZ3pvVzAzdENveU5tbHgraU5KM2VSVzkwdHhSRjN6WHpsSXczc2J4czV0aHRaYkNscExBSVovYXM5cEUyanI4eHp0MVlqKy9LRVY4MS84UnA4SVphTnZEdkNMVXZ4ZVJHQjNHYjE2c2owQTRmUTJHekVVT1pRZ2JoZ2FSZ0VCTzY4MSs2UTJFYWNMTkFnd1grNkZsbE12bWdDWTZDVzNqTVV2bjdDd2tNbmtVL3NCQ1BKYVhOeXpUYWpESjFrWTVRd25jajQ2QlJ3K3d4cUFCM012K1FCZ1BzbUFjSUNGYnBabkRrdmZJRWRmaWx4YXRyMnowSzFIQWljOWR3c2hlVmp3NFNkY2trWXNZaG5mMGZBKzZHY0NCU3pPKzZGYk4vVG9nOXNMeW5QRVBOZGFKUlpOS0hvdHJqdjdVcDlzNk5qTWsreExXbjVpQThKbGdEMzhFUHJmS1QvdjVmTFF6USsxSG1vV1NuQkN5eGhOcXI5aTZPM1pLdjd4REZTNE1RY1JGV3hlbUNBNjJEN0tBdFRMRG1tSlFRL3dJZ0VDaVhMSi92Q3A2S3pPSTZmaXo0bjF4WmxyTitEVmZrWHFaQ0ltV3VLRitWemJHbEhIOTRmeDk2ZndRS2FwRFhxbFEzUjIvZnp3WXczT3g0NFExeUlLOHVmNnNXaGROYmEyM20rWXplNFFiN0EzcW5aamI3SEVjNzhjU3BnVCtsMm9TQ1pQWkh5RWVDbFhybmFjeW5Xd004eUkrL3NtTlpPK25qQzdueis2TWZtSHVWOXlydXdyaTNKZWFYQmxsMjZ4blBrRTk2djBqQ2dlSHlzWlVhUzZ5LzF2dFNVTlpUaDY3SDErWldkRVc3UGM0dkhqaGZGRThoSkNDZ2E5Uzh0REJHM1pUQkNONitSYVVWb0VMUTdLblJSS3RCVVh6SjQwZGVDQTk1ejRVTThXeDNuY3I3WnZacFhLT1pFVjJHOWZhWnJMVHdPU2RSd0VJbVVDTEx3ODd5VTA2VjgrRnlHZzcxRmhEUWJjQlpXOERCNE5FMnNsaUM5RnBrVVU3Ykd1b2cvdDJlWmUvanBHS0ZVa1ZTQnYrZkpacVpiTlhJeHAvbU5oemFSejVlM3l3QW83bVVNK0VOc29kT29oNzkwN0pEcUpTQy9NcGVQT1NVK21WSENmR3p3TXFuM3hqU1ArYnYvZStZc1dtcjFOaUpBZUk5MVVBdWJNdU56a0NxcSt0UEJBcHFrTmVxVkRWbXhwZTZNM2o5NUxXMTdRTEs0c0FpNGlJWUNCcFR4K29pN08wWklBZlZ2VWpmSW04OGRITFJ4S21CUDZYYWhJWThwWTgvak5DaUdxYkdxVVkxcmJZS1JUR0RjTkNDbTd2NmQzVTlxR0tHOU8yV2NOdnhtM0IzYlFRVTlQTGo1ZlZkWHhrZVM3NkxHSW13eXRTSEdUUGpjNDJ4azdFclBtekNoblNSVDk4cXA5L2ZuMW51STBTWWI3eUxwR2JzSHhHNUZvR1U1amlWdnd6SmxlenRSSGQzRXY4MVFrNE0wOVpuK1VtMCtoekI4KzdCQ0dERFA2V0VockVkWEZuNm9iMVZVT1p5Rk91RXNwZEdvN2psN0ZpY2NBWDBJRjlQZjNSYVpGRk8yeHJxSjRpa29lblBiSTE0NVdzNlJRQTZYT0xENUl5dk01OU5YVTljZjU3NlkyQmRubytONlVuajNWRVI5cDZiWlVqVjN3UUthcERYcWxRd0pYRVdjaitmODVSUU5yRFJMR3JZZnJIRXhmdkZreVVKOWxocjl6ZkxpbDUzMENDOTY2RzlwWXNvSldEQVM4L3hEcnMrOEcvaDdhUzVsNVIzL1pFS1lPZjVRUDhsSFYzYlFVQXV2Z3NPTDdzd3lEZTRvdTRIekY3c3pFT2ZZaFE1V3RGUXltTGpOSUxRcmcyWUdYbUltVFd0d3RtMHRzcTE5OW9LSGZYdFFUSzBKZzQ4L3JnU3NCVk1MRlJTTjU0ZWZvaFp0MzBXbVVicEdXcTFZSU5ZVTdUWHVuSHkwU1ppSjZtMXVkYURzbE5tUDZ0anByR1JVQWl2a1Z6RXQ2aFZWendlMm5uZ3FkUnF1ZHAray9DUWdraUh1azJaSU1TKzlvSmxRTTNJM2l4NEFyQzRlOTcxb3VGUzBiOTRKUWxudXRoK3g2blhtK3N3Umk2OGJteVU0MnBRWVdudFVGdUpnSysvU0hFRlBraUhveGp5YW5jQXdqSVBSY29hNmpDUzdzMkE2dGF1ZXZVc0xsZ0ZBZW9OTEE4TS8zSkRrWWRNaWdXWWt0dUYvWW1OZklVdTdVVTRGK2dUbXlQRHZJbklGZTdhNHBkZFlnRmptWW5UbG0vK3FQMjJRNUVCMmc5ZFVuRWFOTGlTMEY4MTZvUTR1blVpWE1CZnp2dThaQU9wOVZPNTR5NkZQb0x6WnQrdE5QZWhNUEU3dlZPM0FzcGVJVlJIbFFwVmtUaHpFUmZxeUZ2TWZpOGVPRjhVVHlFbmxhNTBzQncrMTBURmtzZ24vL29YZzViSmpHcWxsdlU2aW42QlZlTVY0WWhqOGxHOWxQNHBTT3Q4bnlmMGFVdHRrd2s0eWFkMUFaaFZHNU0rNlJ2NUI1QS92NGEwZjRvSS9ZVkdEcExXVi83NjlMcTFGVmhRRFBidjFJZ2xWUithSDBMb3dJWFk5QkZhQk1INzVPVnRQdzRZV2YzSzVYZE5ONGtrNGZzR1lNRXhkWVBEb2FnV1pseFRTZkZoWHpUSGJ3Z3czalBFbGJTdnBJZm1RZHpLRGVNejVHU2IwNEJYTWVtUWtORVAvWjhpM1lUdDdKZGNuTmVvREthb3puY3V5K3pPSFd2L1ZybTdmblVXWWdGZllpOW96blBFU1oyUTNzUCtiMWp6ekdCUlpkWXJHNHBhUzRFL2VPOE5zZGhYRkp1dGNucW5aemx4c0Myd0IxUndGQ3lOaDlWYmRXM2lOVGVMNGNYdmdNWVBYam9SMFgybzV2MUt0UE84cG96N3Yvdlh6V0YvczdrWlhXZFZwN1JRRXVCOU1jdE5seFp0YnlVb3M1U3N6bmg5Yk4wWHQ5QTUrUXpLcDd2ZUxnL1Bya2dzTnBpOTE2U0U3TVhwakhKVzNmbnNXZzY5dGNhM251TWlkY01nMWQ0UnNHditjaFhKK1FYc2hxanY1cGlWT3RDOTFHMXYrTWFzK01Jck9KTFBaeUdDeFdWODFrTk9MeDQ0WHhSUElTSWdsY1piMzN5b0xSVlcyNWNkNVlRZHlEMkgvdk1pS1h1L1lWTFpaOTFoRCs3K1hpWjdiUXFCTUQrSXBHdzd4dzl3SUU2UyswQWgwTE9ERUZSSm5OUmVvQ1oyOThCTzdMNWZlRldQdU1mbjZIU1RSMGFtaFg0TzgveU04aTZlb2NQUGNwQkprNFNrVHg3MEJqeWF4anJRb015MzBCeXZuamxSNmhraXNVeHNEYkJPZ0kwaFFQTFhyUk5KK202ek55bUk2ZTAxeWgyMkV0S1VkMlZYbWpBZmVjN2tYN1QzbzZFWGtoeGFYOHJZMTIwRUZQVHk0K1g5K2pyOTNtV0pWcjdGcW1sbG1vVVNUajZyN2xyWmZoaVBZSENvMi9IWHdFZm5sRVU0V3A3REgzT2xOak51bzBkS09WKzNoYXU1OTRmTkxIY25HR29uMWt1QlJ0ZEpjV3haWXVKeDRac2RuV1FvUnIyZlNma1IvL3REbnNZampDcVVWTElMK0haNGw2KzhJdDZtaEE3R0wrZUJFenlDeWd6YTc2WE9lVVFaRWxwUlhYUW4xY1h1akV5bmw5aURjRzlsZStMSFU3U1BRZkU2T1IyVGdyZHViaUZZRDdLMUJpb3l3WEljTGtQbHVIUEJ1UENxczh4QXFZQ3Z2MGh4QlQ1RlNKdXovTFMwOVdGTkJDeDM4b1pWNVhBcVVsSjBFRVlBTS9uaEh5RmgwWXFJTEswcnI1ZTRrTitYZUFaMW1CRkdxZXREWmJnait4ZTJiaVBnUSs3SVYzUitRaXR2OFoxditMRFpVOW1wcStabnhieWlJZDB2UmpMMk0wSEROSUxHMkJRWUMySUl0SGpSdXlhdENKZVYxNDkxWXc0aHV3RzQwbjF1L1JGa1dwK0FuUGdHdFJiYklZUmZEanhRQzRyK05semNPVWlJLys3M0gybDJhYmhNZUpUZE4yVTVRSk9uOGlQS1RXRlZmM1pXdnI5c2J0S1duKytaa0hPR3lGUXpqSUthSjk1bWpUMVRtQklrem4yQnlRVVFaYUtlZFVvcnR6WWpEeWYyQnFiUzkwMDR5TDlDbVJ4TmV0Sm5yLzJrZ0pUa0FaZnNPK3ZSYmIxd2hHWHRTYVRIMHFjaWhEV0NuTzdld0IvQ01ua3RqaDFVQ1prem5pd2JYd0VUQnJENGdmK3o2bnpzb2RDYkYyQllFdElSR1A0ZEZHaXMrUStyVFFRYzlPZ0RzMmx3Vy9GcDhkRG9TeElLeHhYc3FyVnZndE1SWGxuN0piV0RsUjhGTWZwWmZlblJaa01ad0MvZWhubVpFUXkwNUJBRWtRa1VmWTJ0RkJ0VzhndHlMWTU0WG93MXNseXRUYjF1NFVySURBdjhQL3hKaHkzYnNtRlZma1ZzcW02OUJXY3RnWFNpcXJva2VrWTZKbFJwU3JxRC95d0JXK1hCYWpvV2l1Nk9wSDhmbTRUeXpZQmdYUWhLQnkvL3FKckN4c3F3bWEvd1FCN3pKZndUc3JqaFBLM0NqK29VM1Q3dUNVdnJnZHJYY2pCSGErOTNyaDZMOGpzUm40dGU5M1R3dzVjdlI4Z0tJNVRZQWhuNEVLY3lxYWNSNW9mL0pxUnZ3MWpsYXpwRkFEcGM3eW9jU0ZVZko1WTVERW9uWDRseTlOOXNybGl4VUppaUpGVnlTanFnZ25OV1BLK3ZtOUNTYWowMjVsS2EzcVZCMXJZb0hDWWZWeEhZdjlQV1lJNS9PZUN2RDBGQndCaXNsYlJBUGVMdi9scFYzNjdrUWtsWkFtRHRyOWRRSzJsK2RoL2M0TDRlSHUrd3d1ZHRrZkh4RzFUQ3NQdnV2cmRYaUZ4czN6UWdYM0dOeExMbjdaaFNsN2syclh0Qkc1MlNla29TM1VSQS9HVVFWbnc4cUFhOG1qdUV1RS82bVUwSDdJaVdSb2I2SDBOYmYyRUdwdE5tQ2FySWk4TkxNV0drbGFZZXROLzIyRDYzanhBRldaK3haT1pOY3hQZVdnSGgvaVA0WEE5azJjZ3RUdi9GK2g1NzVSSjVSbDhnb01mb1ZtZU5sR1RCL1dya0hNVGtPSjVEMzVnTWpYWjczdHRhcmthRmNTbis4YmhzTjdwbHdkWS9BUkY0NHlLbEp5RFQwL0Q3TlMzTk40RnJQb1YvbTFjaStiSVg2VjdLcE5QUVZMcDFCWGtwdUZHVWtnNWRVM0t5YkZOeFR2K3g5cFdHOUJPMUxIRC81OGRUbkVHSlJKS3lKYTZEQUNmZWVhdFVTMmxHREdSNHNzWUlCOHNJZkVRQ1lmRS9BaVVVNUR5K2hIS0x1MktEc3gwUjA1dXZQSE1DSVNOU1RKdnVXdzRrWkJjTUs1QklKOEV0Y1JFajZtWjNjNVU4ZjF1QnFzeEpLdGUxYXIwTjVxajBCcWYzQkhjV1U4UGlJRHdFQVNYanVOdGY2YmtkMGxVQ09wVDA2U2JhTjN3VElPOC9WcXBYbCtzV0F5ekIyL213L0F5ZE9tR203aW5qMXpRR2RTRDFwdUlWcU1mMXpCWVpUdnczdGY0eXRHQlQwdDcwU1pUU3AzU0Q2Slk0WU5EcGxiems5bU81b2M1NkRpNGFmeDlpZlRCVHZJb1RROGV6T1MvL1FMTDZzd0JwK1V3NDdrZVdndVJiSVVLMXhYbHFpMUtOajRySWppZXpXb1pTM3NiUlFwenUzc0Fmd2pKOEJibUZQWnNVWUZwYVNKZ1Jjd3dIKzRUeXpZQmdYUWhMOUl1aGhDTmJsMnJPRGtta004aWhvaUpSb1JwUW9ZTmxrY21JaW9ESzVhVEkzTTZ4RHNqRFRUd1J0Sk9DR2RrQTdyeEVQTmZRcDNPYkoyRGx4d0w3OUd6N3o1RnczeU9pRFh4dzhsQmhtSHFldEo5VzJBc3pXSSsvc21OWk8rbm0vRnJ4Mnp6ZUlJbjlZUHZVblk0ejN2OEFBSjU4MEZrVjdLb01McDk5S2hUTWRITGdpVXVGU1ZYTWZDZlJjTmVHRzhYRTBmeXlONHhadlpSS1Rpc2VjcHNaUW9kSkVFekVBcVJUUDc4UFlFenhPWTlEZ1MxZ1RmRmVnNjVGZEJjZ214ZGdXQkxTRVJ5T3B6c01sWHNYWGNuTXZ2ZnM0RkgyTGJabnhpMkxCbURDNTIyUjhmRWJXemV3TnU0RzlqdXBRWi9hUFdoOGk3eTF4RDBpeUF4Vlc2Sit1K00wQ1FSZWQrREtPTEZGM2hZS0dUQ2FzanFFR3lnWi9wYTFVQm5VZnRDcjAvdEFQQitFWTRidHlBT1ozZG80K242bDBMUkN4bDVIelU2K3pHOEVDbXFRMTZwVU5JUzByWnhhNEQxMDd1bHo0M1hDdExseGVybXEycmt4T0g5UVlNMFhwOVNhQ0dUWjNWTU9CNjZvamVFTGtwMTV1MzBPamtiUzNhek0vZW5zRklJc3lqNmVobnhpR0tTU1RGY3QrQ01RL1psdGs2YTcvZi85UVZoQ2E3UTVwMDJlSnJZb0hDWWZWeEhhNXlkdkxkaFlCODR2SGpoZkZFOGhMblI1bGxPUjhMZDFWa0J3anN0Y0R5djh1dXE1N3F3Q3I3em41cy9YYlJWbS9KcDQ2aU03eGJJbmtzc1h0TGo5cXk0d3pRZ1lFVUdRREo1SnhhRGdWZE1HYjlTL3I1OFg5WlllKzVsYjNtaE1XcEJndklxRnd6MDlJblZoMk9Kc1lJbEpSaDYveERyTFc4OTdGY25meERDZGJ3MHZldHBMeFZKNnJxZGdCblhuOUJBWHRwRXVQaHNPUTBpenhmTXlwcE43N283Ynl1Z29qNyt5WTFrNzZlZWZQMXU2NkdQZUlnTGRqTHlZdjltbml3OTMydFRhUEwxTnJQYktXaEtKR1pqTGp6TC9Qdno3a0hESGZQekFzQmp4WkhBN1VRUUlONVZJWkRTWTVWOElCOHNJZkVRQ1lmZ0FJTkVUTS9ML3o1ZWk2TnVYeFVkbmpXL2dHQmZnODZuQTFLeWdIN0tqU1RPRzVPa1NYK0puZUtJSHZZTldTdWlQdjdKaldUdnA3RGRYZnJ2Y2hjYzZPclhOYVQrb29UT25CV0llUHJUQUJGNzhabkxuYnhoQjlEdzhoVS94Q0hFMUN1ZUhPOVowN3o0S0E3UTJmYS9Ocm5TODFQemtqYlpSSUcwMC9rU2c1bHdDZnBPUEs0elhLaThDeWYwdC9qMUJKLzA5VzUxMURhRnZSVGpwQTZ3SjJMMVI3aGtCTmF4bC9nY24randJSkhSOG8xRlRyQnFLOE8vd3JGSWdxU0l6QWtubHAzSGxFY0x6eC9nTktvNTVLRm50MVRPa0FHYXk1UDBRR1dQNkZKSU9YVk55c214ZUVBcUY0dzZsUjNlcnBIeW1QT3ZKZ0IvdnE2eFljek5NQXgzS3RDNjQ4dmdHaWgwdER1MmxINzF4S1lOYS90UWEwMlpIM0FFS2JHbjlZUHZVblk0ejNuUjVsbE9SOExkNUZkY3JSVTNUbzNJNk1xQ0g2TkI3ZGFpenRud1pjbVRSQ0FFalMrcTVHdWV1MXN3YkFwcHFtL2xpYnRWQnBHNGhjdVhnaFdwY0ZRMzJnSkZsTE52M2tiL01OQU14cXAvNXJMNkZuM3BGNU9qM0U0SmlRZ1R3blVROEdkZWd2Y29haml3TnFUNVphT2dIeXdoOFJBSmg5QS8vRWdIWTUwWmZUNGNkNURTVUFJOEpqd25oTUVwTnk3eGNCRE5uYlNLbDBUMnlzOVduTUsySkV5WFVLTGJ3V3dlc2dXUHAyZ1NkTlF1bXJ4VlVGTE0renRiRkxIdmp4VGZ1c0FNN3NKZDhBZHNJME9nRnBrd3JDdmdPb0toRytyOFB1dzFIWmpXYlA5L2k3U01mZGpkVTMrWFluVTY3M2k4ZU9GOFVUeUVvYW14dk45N3JrT3B2cXR3SzNyRkZmZDJ4clBxa3hocHkyYVpKQUpqSkovVXdNK0NheUhrNjBEZENGK3dGaXNMOEl2STNPa2FiU1ZYa3VaZVdpUklrSnJZb0hDWWZWeEhSWm56ZXFaYkl6WnVPdE9xZCtRZldsTTBaeklSZEdFS096QjZEVS8yUU8weFk2OW1MbHdlK3gvTGJLeERPS0UxZXUxbUJja3VDNE9GcWJORFNpWFRGT09Wck9rVUFPbHpwMHZ0OHBLVmliQ2J6b2FWVzYxaFV2bm1JZjYxZEFsOHlPaktnaCtqUWUzMnlyYWVFRlA5SWxueGd6K0REQzhpK3ZDZG5MOWw3Wk9XV3JnRU1zMWlzUjIwRUZQVHk0K1g3N00xb2ZZRmVJQ0kreE11MUp4SVFiRzRqcVB4MHM3UXZmWk1GV0xqRkhwOWtFRnM1OENsNUF1bXdvUkdwWmZ1NVY4TktXdlRJczVWUGQva3RGR1MrTWt6bVkwZGhRRTlZWUpvelFwcDk1VE1WU3AramFIcCtNMWtlU21INDJlK1M5UzJMTDZXQzY3WS9uNW9ZWGNSSzgwWlZYazdESEhDNUVFMWE0eDZKUklQQURjN1F6S2loK3dDK0RqK1BXczVzajZXbzVQMGFxN2lnaFNxZ2tQMnNHQXhJQWl1TjQ1WUZjbnpLQ1daV3BUaUQ0OG5JeWFzY251c3ZwUG5IczBISE1tcnAranBhanc2OXNGNlF1UXhBOEdZdlpZUHpzb3NlWjE3b0ZDUnc3N2dIeXdoOFJBSmgrcWZhdXU0RG4xRFd4MEhRS3owQXB2OWk0RDM0blRtRjJRa1d6Z2t0aUg3eUw5ZHhQSmRWbkFoTUVWdWMwWWxrZkI4RWF1VHUxQzZ0TU52TjlIYk9XRW9raU1kTWhLSG5HSWxaNnpucXlIbUtWckw3QlgrQ3YwZllXSUZuUXJVdmNETnE3Tkk5N0JoUEY2VWFIOThiWDJub3ZEN2dMbTdOM1prZVZpb2k0QzlBWmk5bGcvT3lpeGc5Qys4RmRISXNGcTlWV3NQMGFBZDdneTFsL3YzL1FzL2ljcVl1NzNsdEh2dFNjTW4wUEYzYU5EWUlvcjJZTWJHTUZOSkJLVWpHRk0wWnpJUmRHRUtCOUhwTnVsSER1VDJ6TjgxQU1zcDljVTBhd3lxNjlrNldmcE5TY0l1WUJRNDFscjN2MVVHRHZINmF2a2FTNDFROHBFSXlzSlpUZmljR21idVJBclRsTnd0VGtZREdFKzRsMUY5TUp1NjZiOFc4citiRlJHc3dobzN2LytKQmJBa2FQM0kzdEFGeG5WTnRweWNMNVJ1SGNPVU93SmtVdnVyWlpGRHlvWGdINkxzbXBSUm9GYmNYenduTm91OE5ZdUp0V3lpaWp3SFpQRnd6SmpZampQbG81cmtaSVFJYkxwclZCdjFqUXg1U3BDakdTMWxQRTN0NWtPam05eGN2dUlpYUNDZDhoVGxnL0RyZzBQMUZRcFAvWkdSN3NNYTg0NDRDT1MwNTBEd3BCb2gzdnhmaXBVUExSUnZmbW45anZTRzlxc0RTaTJOV0o0Z1luTG4veGxHQUhLMTZXb0FWRmVJMUVXSDdEV2lIOW4wRUE2VDAza0I3azdTT0s3bS95YkZxNmxoQWF3R2wyM3pSRFUzQTJBZ3M1YlBHL2REblJyYTNhTVA5YmRzdmZCSE05c1paTm5STTQ9bQCqdhFScKiWJc_2nQhAG3LW7viPbIKF"

func main() {
    result, err := Decrypt(encryptData)
    if err != nil {
        log.Fatal(err)
    }

    fmt.Println("Decrypted:", result)
}

func Decrypt(encrypted string) (string, error) {
    ciphertext, err := Ciphertext(encrypted)
    if err != nil {
        return "", err
    }

    key := Key(encrypted)

    plaintext, err := DesECBDecrypt(ciphertext, key)
    if err != nil {
        return "", err
    }

    return string(plaintext), nil
}

func Ciphertext(encrypted string) ([]byte, error) {
    data := encrypted[:len(encrypted)-32]
    rawData, err := base64.StdEncoding.DecodeString(data)
    if err != nil {
        return nil, err
    }
    return base64.StdEncoding.DecodeString(string(rawData))
}

func Key(encrypted string) []byte {
    rawKey := encryptData[len(encryptData)-32:]
    hashedKey := md5.Sum([]byte(rawKey))
    key := make([]byte, des.BlockSize)
    hex.Encode(key, hashedKey[:des.BlockSize/2])
    return key
}

func DesECBDecrypt(ciphertext, key []byte) ([]byte, error) {
    block, err := des.NewCipher(key)
    if err != nil {
        return nil, err
    }

    bs := block.BlockSize()
    if len(ciphertext)%bs != 0 {
        return nil, fmt.Errorf("ciphertext size %d is not a multiple of block size %d", len(ciphertext), bs)
    }
    plaintext := make([]byte, len(ciphertext))
    for decoded := plaintext; len(ciphertext) > 0; decoded, ciphertext = decoded[bs:], ciphertext[bs:] {
        block.Decrypt(decoded, ciphertext)
    }

    return plaintext, nil
}

在 Go Playground 上尝试

© www.soinside.com 2019 - 2024. All rights reserved.