javascript - 我在 c# 中使用 rijndaelmanaged 加密图像文件,我想用加密 js 以角度解密它
问题描述
我有一个用 C# 解密图像文件的示例,但我想以角度解密这个图像,我从服务中的 URL 获取图像
getImage(imageUrl: string): Observable<Blob> {
return this.http.get(imageUrl, { responseType: 'blob'});
}
我的角度解密图像代码:
decrypt(url : string){
var key = "Testtest";
console.log(key);
this.examService.getImageData(url)
.subscribe(file => {
var reader = new FileReader();
reader.onload = () => {
var decrypted = CryptoJS.AES.decrypt(reader.result, key,{
keySize: 128 / 8,
iv: key,
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
var fileDec = new Blob([decrypted], { type : file.type});
var a = document.createElement("a");
var url = window.URL.createObjectURL(fileDec);
var filename = "test";
a.href = url;
a.download = filename;
a.click();
window.URL.revokeObjectURL(url);
};
reader.readAsDataURL(file);
});
}
我有一个用于在 C# 中解密图像的代码,它正在工作,但我必须以角度实现此代码:
string contents = File.ReadAllText(file);
string psw = "Testtest";
string ImagesAdPath = "\\Image\\f ";
string ImagesAdDecPath = "\\Image\\f";
var UE = new UnicodeEncoding();
byte[] key = UE.GetBytes(psw);
string tempFile = ImagesAdDecPath + file.Substring(file.LastIndexOf("\\"));
FileStream fsCrypt = new FileStream(tempFile, FileMode.Create);
RijndaelManaged RMCrypto = new RijndaelManaged();
CryptoStream cs = new CryptoStream(fsCrypt, RMCrypto.CreateDecryptor(key, key), CryptoStreamMode.Write);
FileStream fsIn = new FileStream(file, FileMode.Open);
int data;
while ((data = fsIn.ReadByte()) != -1)
cs.WriteByte((byte)data);
cs.Flush();
cs.Close();
fsIn.Close();
fsCrypt.Close();
解决方案
推荐阅读
- excel - 如何让宏触发数据验证警告?
- jestjs - 为什么在 Jest 中运行时 for..of 循环在 Iterables 上不起作用?
- java - Oracle 18c - 从 oracle 12c 迁移 java 源代码时出现错误 ORA-29541
- java - 如何从超类继承接口
- c# - Visual Studio 2019 和 AWS:执行 .NET Core 2.1 项目时出现“不支持的代码页”
- reactjs - 如何将函数作为道具传递给 React 函数组件?
- python - 将多列合并为 Pandas 数据框中的新行
- java - 如何限制我的域对象中的集合
- python - 确保变量在任何给定时间仅处于一种状态
- mongodb - MongoDB 将不同集合中的两个属性合并为一个并对它们进行排序