问题标签 [encryption-symmetric]
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.
c# - 加密文件大小的计算与真实大小不匹配
我需要计算使用 Rijndael 加密的文件的大小。
根据本网站和谷歌上的其他答案,以下是计算加密数据长度的正确方法:
在我的实例中,未加密的文件长度为 5,101,972 字节,我使用的是 128 位加密密钥,块大小为 16 字节。因此,方程为:
给出一个长度为 5,101,984 字节的加密文件。
但是,加密后我的文件大小为 5,242,896,大小相差 140,912 字节!
现在..我显然做错了什么,但我无法弄清楚它是什么。下面是我的加解密测试代码,以及计算加密大小的方法:
注意:在开始的计算中,我不包括我自己在加密文件开头用于存储原始文件长度的额外 24 个字节,以及 IV...我知道这一点,但没有想要使方程式变得不必要地复杂化。
c# - 服务帐户的正确密码存储和检索?
我发现和阅读的大多数关于在数据库中正确存储密码的信息都说我应该为每个用户使用唯一的盐值对密码明文进行哈希处理,然后将该哈希存储在数据库中。但是这个过程不适合我的需要......
我有一个用 C# 编写的 Windows 服务,它需要使用特定的服务帐户连接到不同数据中心中的其他远程机器。这些服务帐户类似于域用户帐户,但它们背后没有真实的人,它们只是具有在每个特定服务器上执行服务负载的适当权限。服务帐户信息存储在 SQL Server 表中,包括每个帐户的密码。目前,我正在使用对称加密 (Rijndael) 来混淆数据库表中的密码。密钥保存在具有严格访问权限的单独配置文件中。
每次服务有一个计划的有效负载要在远程机器上运行时,我都会在表上查找相应的服务帐户信息并使用密钥对其进行描述。还有一个内部网站,基本上是管理此服务各种设置的前端,管理员可以在其中查看和更改服务帐户的密码。
这是保证事情安全的好方法吗?这个方案有什么明显的缺陷吗?
javascript - 简单的异或消息(Javascript/Tcl)?
在通过 HTTP GET/POST 发送之前,我需要在客户端对用户名/密码进行加扰。在对数据库进行检查之前,服务器将使用 Tcl 对其进行解码。
目前我正在考虑将 JavaScript 用于客户端。Java Applet 也可以。
有什么方法可以让我使用 Simple XOR 或任何其他方法轻松实现它?(示例将不胜感激)
我在 C/Python/.NET/Java 中找到了一些示例……但在 JavaScript 和 Tcl 中没有。
遗憾的是,SSL 不是一个可以使用的选项。
sql-server - SQL Encrypted Columns in WHERE Clause
I am looking to apply SQL column level encryption using symmetric keys. The initial steps needed to create the Database Master Key, Certificates and Symmetric Keys seems straight forward and I have tested encrypting/decrypting data using Symmetric Keys successfully.
However, once the data is encrypted I don't know how best to query it. E.g.
would surely result in a full table scan?
Another option I thought might work is encrypting the search criteria first e.g.
but this doesn't work as the encrypted value generated is always different.
Any suggestions would be greatly appreciated.
sql-server-2005 - 如何在 SQL Server 2005 中使用现有列的安全加密
我想加密 SQL Server 2005 中的现有列,使用 UPDATE 语句,将旧内容移动到新的加密列中。
所以我有两个选择:对称和不对称。
我遇到的问题是,使用对称密钥,我必须将密码嵌入到 SP 中才能读取如下列:
现在如果我想选择数据,我仍然需要重新打开密钥
这不是重点,因为我在存储过程中嵌入了纯文本密码。
一些问题
- 有没有办法解决这个问题 - 即使用此密码创建证书,然后引用证书?
- 是否必须购买此证书(如 SSL),或者我可以创建自己的证书吗?
- 这种方法是否可跨故障转移集群数据库进行扩展,即加密不基于机器,仅基于提供的密码。因此故障转移仍然可以读取密码
谢谢你的帮助
java - 这是一种安全的加密方法吗
我正在为 Android 编写一个应用程序,它使用对称密钥加密来保护敏感数据。据我所知,Android 只直接支持“PBEWithMD5AndDES”。这个算法有多安全?另外,我在下面包含了我的代码(非安卓)。我的代码是否正确加密了数据?
encryption - 将初始化向量和盐与密文一起传递是否不安全?
看来,我是实施加密的新手,仍在学习基础知识。
我的开源代码库需要对称加密功能。该系统包含三个组件:
- 存储一些用户数据的服务器,以及有关它是否加密以及如何加密的信息
- AC#客户端,允许用户在发送到服务器时使用简单的密码加密他们的数据,并在接收时使用相同的密码解密
- 执行相同操作的 JavaScript 客户端,因此必须与 C# 客户端的加密方法兼容
查看各种 JavaScript 库,我发现了 SJCL,这里有一个可爱的演示页面:http: //bitwiseshiftleft.github.com/sjcl/demo/
由此看来,为了解密密文,客户端需要知道的(除了使用的密码)是:
- 初始化向量
- 密码上使用的任何盐
- 密钥大小
- 身份验证强度(我不完全确定这是什么)
将所有这些数据与密文一起保存是否相对安全?请记住,这是一个开源代码库,除非我要求用户记住它们(是的,正确的),否则我无法合理地隐藏这些变量。
任何建议表示赞赏。
encryption - 为什么在对对称算法的蛮力攻击中,在尝试一半后有 50% 的机会找到密钥?
任何密码学文本都提到,在对对称算法的蛮力攻击中,有 50% 的机会在尝试一半后找到密钥。
例如,使用 56 位密钥的 DES 在前 2 55次尝试后将有 50% 的机会找到密钥。
为什么在针对任何对称加密算法的暴力攻击中,经过一半的尝试后有 50% 的机会找到密钥?它的数学证明是什么?
algorithm - 理解希尔密码算法
我想实现希尔密码,但我认为我在理解算法本身时遇到了问题。
我将使用的密钥是一个 2X2 矩阵,我每次将编码 2 个字符。我将键矩阵与 2 个字符的矩阵相乘,然后将 26 上的结果取模为这个等式。
我是这样做的,但是有问题。我使用书中的示例来测试我的算法。由于纯文本是friday
并且键是: int key[][] = {{5, 8}, {17, 3}}
; 结果应该是PQCFKU
。
对于第一个字母f
, r
, f= 5
,r=17
字母加密的顺序f
应该(5*5 + 17*8)%26 =5 => f
是P
我犯的错误在哪里?