标签: encryption

使用PyCrypto AES 256加密和解密

我正在尝试使用PyCrypto构建两个函数,它们接受两个参数:消息和密钥,然后加密/解密消息.

我在网上发现了几个链接来帮助我,但每个链接都有缺陷:

在codekoala上的这个使用os.urandom,PyCrypto不鼓励这样做.

而且,我给函数的关键不能保证具有预期的确切长度.我该怎么做才能实现这一目标?

此外,还有几种模式,建议使用哪种模式?我不知道该用什么:/

最后,究竟是什么?我可以为加密和解密提供不同的IV,还是会以不同的结果返回?

这是我到目前为止所做的:

from Crypto import Random
from Crypto.Cipher import AES
import base64

BLOCK_SIZE=32

def encrypt(message, passphrase):
    # passphrase MUST be 16, 24 or 32 bytes long, how can I do that ?
    IV = Random.new().read(BLOCK_SIZE)
    aes = AES.new(passphrase, AES.MODE_CFB, IV)
    return base64.b64encode(aes.encrypt(message))

def decrypt(encrypted, passphrase):
    IV = Random.new().read(BLOCK_SIZE)
    aes = AES.new(passphrase, AES.MODE_CFB, IV)
    return aes.decrypt(base64.b64decode(encrypted))
Run Code Online (Sandbox Code Playgroud)

python encryption padding pycrypto initialization-vector

153
推荐指数
9
解决办法
35万
查看次数

如何将SecureString转换为System.String?

有关创建以System.String出它不保护你的SecureString的所有预订一边,怎么能做到呢?

如何将普通的System.Security.SecureString转换为System.String?

我相信很多熟悉SecureString的人会回应说,永远不应该将SecureString转换为普通的.NET字符串,因为它会删除所有安全保护. 我知道.但是现在我的程序用普通字符串完成所有操作,我正在尝试增强其安全性,虽然我将使用返回SecureString的API给我,但我并不是想用它来增加我的安全性.

我知道Marshal.SecureStringToBSTR,但我不知道如何取出BSTR并从中制作System.String.

对于那些可能要求知道我为什么要这样做的人,好吧,我正在从用户那里获取密码并将其作为html表单POST提交以将用户登录到网站.所以......这真的必须使用托管的,未加密的缓冲区.如果我甚至可以访问非托管的,未加密的缓冲区,我想我可以在网络流上进行逐字节流写入,并希望这样可以保证密码的安全性.我希望能够回答至少其中一种情况.

.net c# security encryption

147
推荐指数
6
解决办法
9万
查看次数

如何在Java中加密String

我需要的是加密将显示在二维条码中的字符串(PDF-417),这样当有人想要扫描它时就不会有任何可读性.

其他需求:

  • 不应该复杂
  • 它不应包含RSA,PKI基础设施,密钥对等.

它必须足够简单,以摆脱窥探的人,并容易解密其他有兴趣获取数据的公司.他们打电话给我们,我们告诉他们标准或给他们一些简单的密钥,然后可以用于解密.

可能这些公司可以使用不同的技术,因此坚持一些与某些特殊平台或技术无关的标准会更好.

你有什么建议?是否有一些Java类在执行高安全性标准时没有太多的复杂性来执行encrypt()decrypt()?

java encryption

136
推荐指数
9
解决办法
36万
查看次数

134
推荐指数
5
解决办法
8万
查看次数

RSA公钥格式

我在哪里可以找到有关RSA公钥格式的文档?

RSA公钥,格式为OpenSSH:

SSH-RSA AAAAB3NzaC1yc2EAAAABJQAAAQB/nAmOjTmezNUDKYvEeIRf2YnwM9/uUG1d0BYsc8/tRtx + RGi7N2lUbp728MXGwdnL9od4cItzky/zVdLZE2cycOa18xBK9cOWmcKS0A8FYBxEQWJ/q9YVUgZbFKfYGaGQxsER + A0w/fX8ALuk78ktP31K69LcQgxIsl7rNzxsoOQKJ/CIxOGMMxczYTiEoLvQhapFQMs3FL96didKr/QbrfB1WT6s3838SEaXfgZvLef1YB2xmfhbT9OXFE3FXvh2UPBfN + ffE7iiayQf/2XR + 8j4N4bW30DiPtOQLGUrH1y5X/rpNZNlWW2 + jGIxqZtgWg7lTy3mXy5x836Sj/6L

格式化用于Secure Shell的相同公钥(RFC 4716 - 安全Shell(SSH)公钥文件格式):

---- BEGIN SSH2 PUBLIC KEY ----
AAAAB3NzaC1yc2EAAAABJQAAAQB/nAmOjTmezNUDKYvEeIRf2YnwM9/uUG1d0BYs
c8/tRtx+RGi7N2lUbp728MXGwdnL9od4cItzky/zVdLZE2cycOa18xBK9cOWmcKS
0A8FYBxEQWJ/q9YVUgZbFKfYGaGQxsER+A0w/fX8ALuk78ktP31K69LcQgxIsl7r
NzxsoOQKJ/CIxOGMMxczYTiEoLvQhapFQMs3FL96didKr/QbrfB1WT6s3838SEaX
fgZvLef1YB2xmfhbT9OXFE3FXvh2UPBfN+ffE7iiayQf/2XR+8j4N4bW30DiPtOQ
LGUrH1y5X/rpNZNlWW2+jGIxqZtgWg7lTy3mXy5x836Sj/6L
---- END SSH2 PUBLIC KEY ----
Run Code Online (Sandbox Code Playgroud)

格式化为RSA公钥的相同公钥(注意五个 -,没有空格):

-----BEGIN RSA PUBLIC KEY-----
MIIBCgKCAQEA+xGZ/wcz9ugFpP07Nspo6U17l0YhFiFpxxU4pTk3Lifz9R3zsIsu
ERwta7+fWIfxOo208ett/jhskiVodSEt3QBGh4XBipyWopKwZ93HHaDVZAALi/2A
+xTBtWdEo7XGUujKDvC2/aZKukfjpOiUI8AhLAfjmlcD/UZ1QPh0mHsglRNCmpCw
mwSXA9VNmhz+PiB+Dml4WWnKW/VHo2ujTXxq7+efMU4H2fny3Se3KYOsFPFGZ1TN
QSYlFuShWrHPtiLmUdPoP6CV2mML1tk+l7DIIqXrQhLUKDACeM5roMx0kLhUWB8P
+0uj1CNlNN4JRZlC7xFfqiMbFRU9Z4N6YwIDAQAB
-----END RSA PUBLIC KEY-----
Run Code Online (Sandbox Code Playgroud)

base-64编码数据的十六进制转储:

00 00 00 07 73 73 68 2d 72 73 61 00 00 00 01 25 00 00 01 00 …
Run Code Online (Sandbox Code Playgroud)

encryption rsa public-key-encryption

132
推荐指数
3
解决办法
21万
查看次数

Django设置'SECRET_KEY'的目的

SECRET_KEYdjango 究竟是什么意思?我做了一些谷歌搜索并检查了文档(https://docs.djangoproject.com/en/dev/ref/settings/#secret-key),但我正在寻找更深入的解释,以及为什么需要它.

例如,如果密钥被泄露/其他人知道它是什么,会发生什么?谢谢.

python security encryption django

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

哈希密码和加密密码之间的区别

目前对这个问题的最高投票表明:

另一个不是安全问题的安全问题虽然与安全相关,但却是完整的,并且很难解决散列密码和加密密码之间的区别.最常见于代码中的程序员试图提供不安全的"提醒我密码"功能.

究竟是什么区别?我总是认为哈希是一种加密形式.海报所指的不安全功能是什么?

language-agnostic security encryption passwords hash

127
推荐指数
7
解决办法
11万
查看次数

用户密码盐的最佳长度是多少?

当盐析和散列用户密码时,任何显然都会有所帮助.盐有多长时间有什么最佳做法吗?我将盐存储在我的用户表中,所以我希望在存储大小和安全性之间进行最佳权衡.是一个随机的10个字符的盐吗?或者我需要更长的时间?

encryption hash salt

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

base 64编码的目的是什么以及它在HTTP基本身份验证中使用的原因是什么?

我没有得到Base64加密.

如果可以解密Base64字符串,它的目的是什么?

为什么它被用于HTTP Basic身份验证?

这就像告诉别人我的密码被反转为OLLEH.

看到OLLEH的人会知道原来的密码是HELLO.

security encryption base64

126
推荐指数
6
解决办法
7万
查看次数

JavaScript字符串加密和解密?

我有兴趣构建一个供个人使用的小应用程序,它将使用JavaScript在客户端加密和解密信息.加密信息将存储在服务器上的数据库中,但不会存储在解密版本中.

它不一定非常安全,但我想使用当前不间断的算法.

理想情况下,我可以做类似的事情

var gibberish = encrypt(string, salt, key);
Run Code Online (Sandbox Code Playgroud)

生成编码的字符串,等等

var sensical = decrypt(gibberish, key);
Run Code Online (Sandbox Code Playgroud)

稍后解码.

到目前为止,我已经看到了这个:http: //bitwiseshiftleft.github.io/sjcl/

我应该看看其他任何图书馆?

javascript encryption

126
推荐指数
10
解决办法
28万
查看次数