草庐IT

nacl-cryptography

全部标签

c# - 为什么完全使用 C# 类 System.Random 而不是 System.Security.Cryptography.RandomNumberGenerator?

为什么有人会使用来自System.Random的“标准”随机数生成器?完全不用总是使用System.Security.Cryptography.RandomNumberGenerator中的加密安全随机数生成器(或其子类,因为RandomNumberGenerator是抽象的)?NateLawson在13点11分的GoogleTechTalk演讲“CryptoStrikesBack”中告诉我们不要使用来自Python、Java和C#的“标准”随机数生成器,而是使用加密安全版本。我知道随机数生成器的两个版本之间的区别(参见question101337)。但是有什么理由不总是使用安全随机数

cryptography - 我需要一个加密安全的随机数吗?

我正在用Go编写网络服务。登录后,用户会收到一个token,其行为大致类似于cookie,因为用户必须在每个后续请求中传递它才能被识别。我的token生成器是否必须“加密安全”,即。产生高熵?我如何在Go中实现这一目标,最好是使用标准库或由不像我这样具有加密能力的人编写的库? 最佳答案 token生成器在密码学上是安全的,这将有利于降低攻击者猜测新sessiontoken并获得特权的能力。crypto/rand实现了这样一个随机数生成器,包括允许您生成随机整数、质数和字节的函数。 关于c

file - 如何使用 NaCl 对大文件进行签名?

鉴于GoNaCl库(https://github.com/golang/crypto/tree/master/nacl/sign)的签名功能,如何对文件进行签名,尤其是超过1GB的超大文件?大多数互联网搜索结果都是关于对slice或小字节数组进行签名的。我可以想到两种方法:以block的方式循环文件和流(例如每次16k),然后将其输入符号函数。流式输出连接成签名证书。为了验证,它是相反的。使用SHA(X)生成文件的shasum,然后对shasum输出进行签名。 最佳答案 对于非常大的文件(数GB及以上),使用标准签名功能的问题通常是

cryptography - 如何将 ECDSA 曲线规范从 SEC2 形式转换为 Go 需要的形式?

我正在尝试在GoogleGo的曲线secp256k1中实现ECDSA。Secp256k1由SECG标准(SEC2,第2部分,RecommendedEllipticCurveDomainParametersover?p,第15页)根据参数p、a、b、压缩的G、未压缩的G、n和h定义。在Go'scryptolibrary,曲线由参数P、N、B、Gx、Gy和BitSize定义。如何将SECG给出的参数转换为Go需要的参数? 最佳答案 在Go的elliptic包中,ACurverepresentsashort-formWeierstrass

cryptography - Golang crypto 多次调用有不同的响应

我为密码身份验证库编写的一些Go代码出现问题。总体思路是提供2个函数,Check()和New(),它们都提供了密码和256位HMACkey。Check()函数还提供了一个256位盐和一个256位散列,并返回一个bool值。New()函数返回一个新的随机盐及其对应的哈希值。这两个函数都依赖于辅助函数hash(),它使用scrypt来延长key,并完成生成输出哈希的实际工作。当我最初编写它时它是有效的(事实证明我有由早期丢失的代码修订生成的工作测试数据)。我现在遇到的问题是,当提供旧版本代码生成的数据时,Check()函数似乎可以完美运行,但现在似乎无法处理代码自己的New()生成的任何数

python - 在 Docker Alpine Linux 3.3 中无法使用 OpenSSL 1.0.2g 和 Python 2.7 出现 "pip install cryptography"

已解决哇,这些家伙真快……基本上就是这个https://github.com/pyca/cryptography/issues/2750事实证明,openssl的安全更新已发布(DROWN攻击),该更新包含意外的函数签名更改,导致不兼容,所以这对我来说只是运气不好。我需要在运行AlpineLinux的Docker容器中使用pipinstallcryptography。实际上,它是另一个模块,service_identity,但问题出在cryptography模块,这是一个依赖。我有以下DockerfileFROMalpine:3.3RUNapk--updateaddbuild-base

python - pip 差错误 : 'module' object has no attribute 'Cryptography_HAS_SSL_ST'

我尝试从pip安装并不断收到类似类型的错误。$pipinstallquandlTraceback(mostrecentcalllast):File"/usr/bin/pip",line9,inload_entry_point('pip==1.5.6','console_scripts','pip')()File"/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py",line558,inload_entry_pointreturnget_distribution(dist).load_entry_point(group,n

python - pyconfig.h 在 "pip install cryptography"期间丢失

我想建立sc​​rapy集群pip击这个链接scrapy-cluster,在我运行这个命令之前一切正常:pipinstall-rrequirements.txtrequirements.txt看起来像:cffi==1.2.1characteristic==14.3.0ConcurrentLogHandler>=0.9.1cryptography==0.9.1...我猜上面的命令意思是在requirements.txt中安装包。但是我不想让它指定版本,所以我把它改成这样:catrequirements.txt|whilereadline;dopipinstall${line%%[>=]*

cryptography - Go 中的加密库与 OpenSSL 相比如何?

在生产代码中使用它是否足够安全?特别是作为TLS客户端。如果没有,是否有记录从Go调用OpenSSL库的方法? 最佳答案 来自http://blog.golang.org/a-conversation-with-the-go-team:InthemailinglistsAdamLangleyhasstatedthattheTLScodehasnotbeenreviewedbyoutsidegroups,andthusshouldnotbeusedinproduction.Arethereplanstohavethecoderevie

cryptography - 为什么我们需要一个恒定时间*单字节*比较函数?

查看Go标准库,有一个ConstantTimeByteEq看起来像这样的函数:funcConstantTimeByteEq(x,yuint8)int{z:=^(x^y)z&=z>>4z&=z>>2z&=z>>1returnint(z)}现在,我了解了对恒定时间字符串(数组等)比较的需要,因为常规算法可能会在第一个不相等元素后短路。但是在这种情况下,两个固定大小的整数的常规比较不是已经是CPU级别的恒定时间操作了吗? 最佳答案 这一点很可能避免branchmispredictions,除了结果为1或0而不是true或false(允许后