标签: encryption

给定私钥,是否可以派生其公钥?

通过阅读各种材料,无论我理解什么,公钥 - 私钥对都是不对称加密的基础,也是选择2个素数(大致是你的私钥)并乘以它们(大致是你的公钥)的东西,我如果您知道私钥,则可能会生成公钥.这是正确的还是我错了什么?

[编辑]

让我更加困惑的是,只能使用私钥(使用.NET类RSACryptoServiceProvider)将RSA密钥序列化为XML .不确定这个限制是否有意!

.net encryption cryptography encryption-asymmetric

51
推荐指数
5
解决办法
3万
查看次数

如何在Java中创建安全的随机AES密钥?

使用标准JDK在Java中生成安全随机AES密钥的推荐方法是什么?

在其他帖子中,我发现了这一点,但使用a SecretKeyFactory可能是一个更好的主意:

KeyGenerator keyGen = KeyGenerator.getInstance("AES");
SecureRandom random = new SecureRandom(); // cryptograph. secure random 
keyGen.init(random); 
SecretKey secretKey = keyGen.generateKey();
Run Code Online (Sandbox Code Playgroud)

如果答案包括解释为什么它是生成随机密钥的好方法,那将是很好的.谢谢!

java encryption jce aes

51
推荐指数
3
解决办法
11万
查看次数

在Python 3中删除字符串文字前面的'b'字符

我是python编程的新手,我有点困惑.我尝试从字符串中获取字节以进行哈希和加密,但我得到了

b'...'
Run Code Online (Sandbox Code Playgroud)

b字符串前面的字符就像下面的例子一样.有没有办法避免这种情况?.任何人都可以提供解决方案吗?对不起这个愚蠢的问题

import hashlib

text = "my secret data"
pw_bytes = text.encode('utf-8')
print('print',pw_bytes)
m = hashlib.md5()
m.update(pw_bytes)
Run Code Online (Sandbox Code Playgroud)

OUTPUT:

 print b'my secret data'
Run Code Online (Sandbox Code Playgroud)

python string encryption binary

51
推荐指数
3
解决办法
9万
查看次数

RSA加密,长度不好

调用以下函数时:

byte[] bytes = rsa.Encrypt(System.Text.UTF8Encoding.UTF8.GetBytes(stringToEncrypt), true);
Run Code Online (Sandbox Code Playgroud)

我现在得到错误:长度不好.

使用较小的字符串可以工作,任何想法问题可能是我传递的字符串不到200个字符.

c# encryption rsa encryption-asymmetric

50
推荐指数
4
解决办法
4万
查看次数

将字节数组转换为字符串并返回字节数组的问题

关于这个主题有很多问题,同样的解决方案,但这对我不起作用.我有一个加密的简单测试.加密/解密本身是有效的(只要我使用字节数组本身而不是字符串处理此测试).问题是不希望将它作为字节数组处理,而是作为String处理,但是当我将字节数组编码为字符串并返回时,生成的字节数组与原始字节数组不同,因此解密不再起作用.我在相应的字符串方法中尝试了以下参数:UTF-8,UTF8,UTF-16,UTF8.他们都没有工作.生成的字节数组与原始数组不同.任何想法为什么会这样?

加密:

public class NewEncrypter
{
    private String algorithm = "DESede";
    private Key key = null;
    private Cipher cipher = null;

    public NewEncrypter() throws NoSuchAlgorithmException, NoSuchPaddingException
    {
         key = KeyGenerator.getInstance(algorithm).generateKey();
         cipher = Cipher.getInstance(algorithm);
    }

    public byte[] encrypt(String input) throws Exception
    {
        cipher.init(Cipher.ENCRYPT_MODE, key);
        byte[] inputBytes = input.getBytes("UTF-16");

        return cipher.doFinal(inputBytes);
    }

    public String decrypt(byte[] encryptionBytes) throws Exception
    {
        cipher.init(Cipher.DECRYPT_MODE, key);
        byte[] recoveredBytes = cipher.doFinal(encryptionBytes);
        String recovered = new String(recoveredBytes, "UTF-16");

        return recovered;
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我尝试的测试:

public class NewEncrypterTest
{
    @Test
    public …
Run Code Online (Sandbox Code Playgroud)

java string encryption bytearray

50
推荐指数
3
解决办法
6万
查看次数

是否可以隐藏/编码/加密php源代码并让其他人拥有系统?

是否可以隐藏/编码/加密php文件/源代码,让其他人安装系统并在其计算机上运行?

php encryption obfuscation

50
推荐指数
3
解决办法
11万
查看次数

OpenSSL vs GPG用于加密异地备份?

考虑到在将存档推送到场外备份位置之前使用GPG和OpenSSL进行本地加密之间的选择,每种解决方案的优点和缺点是什么?

背景:我目前正在管理基于Ubuntu 14.04.1的服务器基础架构,并且在可用时应用所有当前补丁.

所有这些系统都是无头的,使用经过审查的预制和自动化工具自动构建,并通过基于Intel的统一硬件上的KVM在虚拟机中运行.

我们偏爱Ruby,但更倾向于"正确地做事".由于两者兼而有之,我们选择"备份"gem作为创建我们想要保留的数据的加密存档的手段,因为它将为使用Vagrant的开发人员创建相同的加密存档,无论其机制如何,它传播了.

所有软件和配置都通过Puppet进行管理,因此这两项决定都不会对"用户体验"或方便性产生任何影响.这两个选项都将创建相关脚本,以便从创建的任何备份中进行管理,验证或还原.

鉴于此,当用于此目的时,任一加密选项是否对另一个提供任何优势?

ruby encryption gnupg puppet ubuntu-14.04

49
推荐指数
1
解决办法
2万
查看次数

什么加密算法最适合加密cookie?

由于这个问题相当受欢迎,我认为给它更新很有用.

让我强调AviD给出的正确答案:

您不应该在cookie中存储任何需要加密的数据.相反,在cookie中存储一个大小合适的(128位/ 16字节)随机密钥,并将您想要保密的信息存储在服务器上,由cookie的密钥标识.



我正在寻找有关加密cookie的"最佳"加密算法的信息.

我有以下要求:

  • 必须快速
    加密和解密数据(几乎)每个请求都要完成

  • 它将在小数据集上运行,通常是大约100个字符或更少的字符串

  • 它必须是安全的,但它不像我们正在保证银行交易

  • 我们需要能够解密信息,以便SHA1等出来.

现在我已经读过Blowfish快速而安全,我读过AES快速而安全.Blowfish的块大小较小.

我认为这两种算法都提供了足够的安全性?所以速度将成为决定性因素.但我真的不知道这些算法是否适合小字符串,以及是否有更适合加密cookie的算法.

所以我的问题是:
什么加密算法最适合加密cookie数据?

更新
更准确地说,我们要加密2个cookie:一个包含会话信息,另一个包含"记住我"信息.

该平台是PHP上作为VPS上的Linux上的apache模块.

更新2
我同意cletus,将任何信息存储在cookie中是不安全的.

但是,我们需要实现"记住我"功能.可接受的方法是设置cookie.如果客户端提供此cookie,则允许他或她以(几乎)相同的权限访问系统,就像他/她提供有效的用户名密码组合一样.

因此,我们至少要加密cookie中的所有数据,以便:
a)恶意用户无法读取其内容;
b)恶意用户无法制作自己的cookie或篡改它.

(在我们对它做任何事情之前,对所有来自cookie的数据进行消毒并检查其有效性,但这是另一个故事)

会话cookie不再包含sessionId/timestamp.它可以在没有加密的情况下使用,但我认为加密它没什么害处?(计算时间除外).

因此,鉴于我们必须在cookie中存储一些数据,加密它的最佳方法是什么?

更新3
对此问题的回答使我重新考虑所选择的方法.我确实可以做同样的事情而不需要加密.我不应该加密数据,而应该只发送没有上下文而无法猜到的数据.

然而,我也不知所措:
我认为加密使我们能够将数据发送到BigBadWorld™,并且仍然(相当)确定没有人可以阅读或篡改它......
不是全部加密点?

但下面的反应推动:不要相信加密来实现安全性.

我错过了什么?

php security encryption cookies remember-me

48
推荐指数
4
解决办法
4万
查看次数

如果fiddler 2可以通过HTTPS解密所有呼叫,那么SSL的意义何在?

我在这里回答了一个问题,如何隐藏我的http请求调用并使它们在我的应用程序中更安全.我不希望人们使用fiddler 2来查看呼叫并设置自动应答器.每个人都告诉我去SSL,呼叫将被隐藏,信息保持安全.

我购买并安装了SSL证书并完成了所有设置.我启动了fiddler 2并运行了一个测试应用程序,该应用程序连接到https Web服务以及连接到https php脚本.

Fiddler 2不仅能够检测到这两个请求,还能解密它们!我能够看到所有信息都返回到第四位,这让我想到了我的问题.

如果SSL与安全性无关,那么拥有SSL有什么意义呢?无论有没有SSL,我都可以看到所有信息都返回第四,而STILL则设置了自动应答器.

在.NET中有什么东西我错过了更好地隐藏我的通过SSL的呼叫?

编辑

由于我收到的一些回复,我在这个问题中添加了一个新的部分.如果应用程序连接到Web服务以进行登录,该怎么办?该应用程序向Web服务发送用户名和密码.然后,Web服务将数据发送回应用程序,说明登录数据良好或不良.即使通过SSL,使用fiddler 2的人也可以设置一个自动应答器,然后应用程序被"破解".我理解在调试中看到数据是多么有用,但我的问题是究竟应该做些什么来确保SSL连接到它请求的那个.基本上说不可能有一个中间人.

c# encryption ssl .net-4.0 fiddler

48
推荐指数
3
解决办法
2万
查看次数

7-Zip命令在Windows上创建和提取受密码保护的ZIP文件?

在Mac/Linux上压缩/解压缩受密码保护的zip文件,我使用:Zip:

zip -P password -r encrypted.zip folderIWantToZip
Run Code Online (Sandbox Code Playgroud)

解压缩:

unzip -P password encrypted.zip
Run Code Online (Sandbox Code Playgroud)

在命令行上Windows上的等效命令是什么(假设已经安装了7zip)?

我一直在做研究,发现使用Java zip4j库密码加密是不可能的.Windows也没有像Mac/Linux这样的zip命令提示符

windows encryption zip command-line 7zip

48
推荐指数
3
解决办法
10万
查看次数