我需要将此代码JavaScript更改为C#var CryptoJS = require("crypto-js"); var bytes = CryptoJS.AES.decrypt(ciphertext, secretkey); var originalText = bytes.toString(CryptoJS.enc.Utf8);
示例
已编码的JSON或字符串:U2FsdGVkX1+pmKonC+E+MGs9BltH/axDE3IRYIV+vHF0yuteP4JAzuQ/CmmSgY2xkqeAhl02bIL5cJhsE1NOsc79ENadltxt2QEBymquSnbUsuhtxHptgGUXV0XuSPPQAt4/Rk2bDaR7qJw2LJKh4U1/pqeJUlqP2qLdtBTLs7E+W2TVh0/yMAVyuGUctEtx41qOClFzyfPxNydtSO6vzQ+3OOrI4Ov7ZgX07OJIF5sAq+m3pJQspL93UHbKS1w7a4dJUn2s+7JRYASkD9IBsheXI//SiE3yJv3c/dOs3VFDl4ok+m0MkgMwHQ0ELySUx1/UVTY6lefenO2RgASE52ATwIyKy7rdf4GKnrYpU7rdMZwcu1enI8Jpz5Ri3pFioyJSiPPDVKIecDQJ+UsQpsszWA6mQb3YMRhIxJrdcjSGEIHPGTHFEYgVpSO9y4EeGKLvX5oJ0tQDhO+QW1LQszcojRsgFuyFkdAsjNVzRNK3K4qE6Ua8j6t/kyE9i/MW7DQ0nT3d3CozLGS68PdEI34kljArY6Hmrgkt4InvBKdMvfffogKE3NtwBhf/3nK5
密码或密钥:F2Gs3zjSjd3
输出:[{"file":"https://b-g-eu-9.feetcdn.com:2223/v3-hls-playback/c83527cf3b73ecffcf91595b165e137b7bf0f0ff2cf816d8667161afea2370e71690359b5976a5dc5c03de31f949fb1b200f2bce6c273a4130adf84021cf6552384560a824abbe8461d68ffcd0cebd910f40863d28243932cc345541a0cd0c8e12788b9dd7cfed3537ba53fcaa365bf0afb6fac7ae10374d4d89c7a50d37988df1625da6a6e248a2c6ac5183c26a1b0b1d9e24ecaa036a31c306f7714c3c7b2c/playlist.m3u8","type":"hls"}]
我尝试在这个page和工作很好,但我需要C#的实现。
请帮助
我尝试了C#中的一些AES解密变体,但运气不好。
3条答案
按热度按时间6l7fqoea1#
啊我发现这个工作100%
Tony Tran tmtxt
CryptoJsStaticHelper.cs
h5qlskok2#
您需要做的第一件事是将输入数据拆分为salt和实际密文。
第二步是生成48字节的数据,其中32字节用于AES密钥,16字节用于IV,使用称为EvpKDF的算法(这是CryptoJS默认使用的)。
最后,必须使用AES和Key和IV的计算值来实际解密数据。
我的完整实现看起来像这样:
请注意,这个实现并不完美,还有很多需要改进的地方,但是对于像您作为示例提供的少量数据来说,它应该是不错的。
cnh2zyt33#
试试这个: