问题标签 [rijndaelmanaged]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
security - 这是实现“记住我”功能的合理方式吗
如果用户登录该站点并说“记住我”,我们将获得该用户的唯一标识符,使用 RijndaelManaged 对其进行加密,密钥大小为 256,并将其放入 httponly cookie 中,设置有效期为 120 天,每次对服务器的成功请求都会刷新过期时间。
可选地,我们根据用户代理和部分 ipv4 地址(最后两个八位字节)生成初始化向量。
显然没有内置真正的过期系统,从技术上讲,用户可以永远使用这个加密密钥(假设我们不更改服务器端密钥)..
我考虑到要允许此功能,我需要允许用户能够绕过登录并给我他们的唯一 ID(这是一个 guid),我认为单独的 guid 很难猜出一个真正的用户 guid,但是会使站点容易受到botnots生成guid的攻击(我不知道他们找到合法的guid有多现实)..所以这就是为什么在服务器知道加密密钥的地方进行加密,以及可选的iv特定于浏览器和 ip 部分。
我是否应该考虑另一种方法,让服务器发出与用户关联的票证,这些票证将有一个已知的到期日期,以便服务器控制到期?我真的应该关心到期吗?记住我到底还是记住我?
期待被谦卑;),干杯。
c# - Rijndael / AES 从 C# 到 VB6
我需要在 VB6 中加密一个字节数组并在 C#(NET 2.0)中解密它。反之亦然(C# 到 VB6)。
在 C# 中,我使用了 RijndaelManaged 类。在 VB6 中,我使用了来自 Internet 的免费片段。最好的似乎是http://www.frez.co.uk/freecode.htm#rijndael 但是这两种实现从相同的输入开始产生不同的输出:(
也许这是 RijndaelManaged 中的 IV 向量的问题......我不明白......
在 VB6 和 NET 之间使用 Rijndael/AES 的任何解决方案/经验?或 TripleDes....
谢谢你
更新:重要提示:运行 vb6 应用程序的机器没有 NET 框架。所以我不能使用 Interop 和/或暴露为 COM 的 NET 包装类。:(
cryptography - RSA加密公钥未从容器返回?
我觉得我想做的很简单。但由于某种原因它不想工作:
这是一个完整的代码片段来测试我正在尝试做的事情:
只要我保存/获取具有私钥和公钥的 RSACryptoServiceProvider ,这似乎就可以正常工作。一旦我用一个公钥保存了一个 RSACryptoServiceProvider,下次我尝试检索它时,我得到的只是一个新的和不同的 RSACryptoServiceProvider!
可以想象,您无法使用一组密钥加密某些内容,然后尝试使用全新的一组密钥进行解密!
关于为什么会发生这种情况的任何想法?或者存储公钥的正确方法是什么?
exception - “要解密的数据长度无效。” Rijndael解密期间的异常
我得到“要解密的数据长度无效。” 当我尝试解密内存流时出现异常。我是初学者,无法弄清楚什么是错的。怎么了?
c# - C# AES 算法何时会符合 FIPS?
现在,我可以让RijndaelManaged算法在打开 FIPS 的本地安全设置的计算机上运行的唯一方法是禁用它。这是一台政府计算机,所以我不确定它会如何运行。我在msdn 博客网站上看到帖子说他们正在开发符合 AES FIPS 的版本,但我似乎无法找到更多信息。有谁知道这什么时候会发生?
c# - 要解密的数据长度无效
我正在尝试使用 RijndaelManaged 通过套接字加密和解密文件流,但我一直遇到异常
当整个文件已被传输时,在 receiveFile 中的 using 语句结束时会引发异常。
我尝试在网上搜索,但只找到了在加密和解密单个字符串时使用 Encoding 时出现的问题的答案。我使用 FileStream,所以我没有指定要使用的任何编码,所以这不应该是问题。这些是我的方法:
这是我用来设置密码的方法。byte[] init 是一个生成的字节数组。
有人知道我可能做错了什么吗?
c# - 指定的初始化向量 (IV) 与此算法的块大小不匹配
我正在研究一种基本加密方法。我正在使用 RijndaelManaged。我很久以前从某个地方得到这个代码,但不记得在哪里。
我之前的代码可以工作,但是发生了一些变化,我无法弄清楚。
当我运行我的代码时,我收到以下错误;
指定的初始化向量 (IV) 与此算法的块大小不匹配。
这是我的代码:
任何帮助将不胜感激。
c# - 如何将字节数组转换为字符串?
使用以下功能:http: //msdn.microsoft.com/en-us/library/system.security.cryptography.rijndaelmanaged.aspx
如您所见,它返回一个字节数组,我想将字节数组转换为字符串。
如何将它从字节数组转换为字符串,反之亦然?
c# - 为什么 RijndaelManaged 和 AesCryptoServiceProvider 返回不同的结果?
这是我运行的示例。它具有相同的 Mode、Padding、BlockSize、KeySize。我使用相同的初始化向量、键和数据。
使用 RijndaelManaged 会生成以下加密值:0x8d,0x81,0x27,0xc6,0x3c,0xe2,0x53,0x2f,0x35,0x78,0x90,0xc2,0x2e,0x3b,0x8a,0x61,0x41,0x47,0xd6,0xd0,0xff ,0x92,0x72,0x3d,0xc6,0x16,0x2b,0xd8,0xb5,0xd9,0x12,0x85
使用 AesCryptoServiceProvider 产生的加密值是:0x8d,0x9f,0x6e,0x99,0xe9,0x54,0x8b,0x12,0xa9,0x88,0x1a,0x3d,0x65,0x23,0x9c,0x4e,0x18,0x5a,0x89,0x31,0xf5 ,0x75,0xc5,0x9e,0x0d,0x43,0xe9,0x86,0xd4,0xf3,0x64,0x3a
这是我用来生成这些结果的代码
我想我只是想知道我是否错过了什么。
更新:事实证明,如果您尝试将 CipherMode 设置为 CFB, AesManaged将抛出 CryptographicException(“指定的密码模式对此算法无效”)。我觉得AesCryptoServiceProvider也应该这样做,但事实并非如此。FIPS 认证类允许无效密码模式似乎很有趣。
c# - .NET 加密类的线程安全?
我的高级目标是创建一个封装我的 .NET 应用程序加密的静态实用程序类。在里面,我想尽量减少不必要的对象创建。
我的问题是:在 .NET Framework 中实现对称加密的类的线程安全性是什么? 具体来说System.Security.Cryptography.RijndaelManaged
以及ICryptoTransform
它生成的类型。
例如,在我的类构造函数中,我可以简单地按照以下几行做一些事情吗?
回避在这个类中存在 Key 和 IV 是否安全的问题,这个示例块提出了许多其他问题:
我可以不断重复使用 EncryptorTransform 和 DecryptorTransform 吗?和属性暗示“是”
*.CanReuseTransform
,*.CanTransformMultipleBlocks
但有什么我应该注意的警告吗?由于
RijndaelManaged
实现IDisposable
了我的倾向是将它放在一个using
块中,特别是因为它可能与外部操作系统级库相关联。既然我把ICryptoTransform
物体放在身边,有什么注意事项吗?可能是最重要的问题,在高度多线程的环境中,我是否会遇到
ICryptoTransform
在线程之间共享对象的问题?如果#3 的答案是它不是线程安全的,那么我在使用
ICryptoTransform
对象时是否会因锁定而导致性能严重下降?(我想取决于负载。)RijndaelManaged
每次都简单地实例化 new 会更好吗?还是存储一个RijndaelManaged
并new RijndaelManaged().CreateEncryptor(...)
每次生成?
我希望有人知道这些在幕后是如何工作的,或者对类似实现的问题有经验。我发现很多此类性能和线程相关问题通常在负载相当大时才会显现出来。
谢谢!