小编Hep*_*ous的帖子

C#从内存中安全删除变量

我正在制作与安全相关的计划,我想确保我以正确的方式这样做.当有人使用密码登录时,密钥会被解密并存储在变量中.当他们注销时,我希望内存中的数据被完全删除,而不仅仅是标记为已删除.我目前正在做以下事情:

public void Logout()
{
    RNGCryptoServiceProvider rngCsp = new RNGCryptoServiceProvider();
    for (var i = 0; i < 3; i++)
    {
        byte[] data = new byte[(int) Math.Round((double) (_phraseHash.Count()))];
        rngCsp.GetBytes(data);
        int randomNum = BitConverter.ToInt32(data, 0);
        _phraseHash = randomNum.ToString();
    }
    LoggedIn = false;
    _phraseHash = null;
}
Run Code Online (Sandbox Code Playgroud)

我想知道的是,这是否足以从系统中完全删除密钥(_phraseHash).

这甚至是必要的吗?我实际上并不知道内存中的数据是如何被删除的,我只是假设它有点类似于硬盘驱动器如何工作,其中字节被标记为删除并在其他需要空间时重写.

c# memory security

7
推荐指数
1
解决办法
2150
查看次数

JavaScript:写入下载流

我想从我的服务器下载加密文件,解密并在本地保存.我想解密文件并在下载时将其写入本地,而不是等待下载完成,解密,然后将解密文件放在锚标记中.我想这样做的主要原因是,对于大文件,浏览器不必在内存中存储数百兆字节或几千兆字节.

javascript encryption download file-storage

6
推荐指数
2
解决办法
2803
查看次数

标签 统计

c# ×1

download ×1

encryption ×1

file-storage ×1

javascript ×1

memory ×1

security ×1