草庐IT

c - AES_cbc_encrypt 中的段错误

我正在尝试更详细地了解OpenSSL库。因此,我一直在尝试使用AES_*函数,而不是使用一组更高级别的EVP函数。按照thisquestion中的一般调用集(虽然我使用的是CBC而不是计数器模式),但我想出了这段代码:voidctr(log_t*log){unsignedcharivec[16];/*Outbufferforciphertext*/unsignedcharoutBuf[16];blockReader_t*br=blockReaderInit(log,"./input.txt",128);intoutFD;if((outFD=open("out.bin",O_WRONLY

来自 Linux 内核的 CCM-AES

我需要与Solaris加密机制SUN_CKM_AES_CCM兼容。在Linux中,我相信我应该设置一个AEAD请求来获取“ccm(aes)”机械。LinuxCrypto的文档看起来确实很差,最好的例子似乎是tcrypt.c测试和内核源代码。我在Solaris上对一个512字节的block进行了测试加密,其中包含16字节的hmac和12字节的iv。这需要保持不变,并希望结果相同。但是,我认为应该会起作用,但实际上并没有;structcrypto_aead*tfm=NULL;structaead_request*req;unsignedcharkey[16]={0x5c,0x95,0x64

linux - 想要一个2.6.38以上内核版本使用aes加密方式的例子

我知道linux内核内部有“aes”模块,所以也许有人可以为我提供一个示例,因为我正在制作一个使用此功能的内核模块。非常感谢。 最佳答案 例如,您可以查看net/mac80211/aes_ccm.c。基本顺序是crypto_alloc_cipher("aes",...)crypto_cipher_setkey(...)根据需要执行crypto_cipher_encrypt_one(...)crypto_free_cipher(...)或者net/ceph/crypto.c给出了在CBC模式下使用AES的例子。在任何情况下都要非常小心

Java 7 Kerberos 问题 - AES128 损坏的校验和

我正在从Java6迁移到Java7,但遇到了Kerberos身份验证问题。在我看来,底层加密类型顺序已切换,因此使用了不同的加密类型。在这种情况下,当Java7运行时,Aes128CtsHmacSha1EType被用于部分事务。ArcFourHmacEType在运行Java6时使用,并用于运行Java7的其他部分。其他详细信息:针对WindowsActiveDirectory服务器在Linux(Fedora16)上运行。我知道,如果我在krb5.conf文件中设置default_tkt_enctypes、default_tgs_enctypes、permitted_enctypes参数

php - 如何在 Linux 上从 PHP 创建兼容 WinZip 的 AES-256 加密 zip 文件?

我必须从Linux机器上的PHP应用程序创建一个WinZip兼容的zip文件,它必须使用AES256加密。我找到了一些适用于Windows上的PHP的解决方案,但它们对我没有帮助!一个PHP包会很棒,但如果我需要,我总是可以让我的PHP代码运行exec()或其他东西来运行linux命令行实用程序。有什么建议吗? 最佳答案 不是特定于php的(这个问题在没有php的情况下在google中排名很高):7-Zip实现了这个功能,在我的文档中我找到了这个命令:7zaa-tzip-pPASSWORD-mem=AES256target.zipf

linux - 使用 Linux 使用 AES 进行文件加密/解密

我正在使用OpenWrtLinux发行版,我想使用AES加密文件。我如何快速轻松地做到这一点,我或其他人如何再次解密它? 最佳答案 最快最简单的方法是使用opensslutil(由openssl-util包提供)。例如,要加密文件,请发出以下命令:opensslenc-aes-256-cbc-infile.txt-outfile.enc解密:opensslenc-d-aes-256-cbc-infile.enc-outfile.dec 关于linux-使用Linux使用AES进行文件加密

linux - 如何在 Linux 上为 Node.js 加密启用 AES-NI(硬件加速)?

我编写了一个基本函数来测试Node.js内置加密函数的AES-256-CBC模式的速度。这些函数使用OpenSSL,因此它们应该支持AES-NI,但是当我正确启用AES-NI并对OpenSSL进行命令行测试时,加密速度在OpenSSL上为~350MB/s,在Node.js上仅为~100MB/s加密。我用了thisanswer在命令行中启用OpenSSLAES-NI并按如下方式运行:opensslspeed-evpaes-256-cbc我的问题是,如何使AES的Node.js加密函数的速度与在命令行中运行的OpenSSL的速度相匹配?我怀疑原因是没有使用AES-NI

php - AES中输入与密文长度的关系

最近开始在我的应用程序中使用密码学,我发现自己对输入文本长度和它产生的密文之间的关系感到困惑。在应用密码之前,很容易确定数据库列的大小。但是,现在列大小略有不同。两个问题:我假设这是由于我输入的填充,因此它符合密码的要求,这是否正确?有没有办法根据输入的最大长度准确预测出密文的最大长度?为了加分:我应该将base64编码的密文存储在varchar中,还是将其保留为原始字节并将它们存储在varbinary中?将字节存储在我的数据库中是否存在风险(我使用的是参数化查询,因此理论上意外中断转义应该不是问题)?TIA!补充:我使用的密码是AES/Rijndael-256-这种关系是否因可用算法

php - 如何从 AES 加密字符串中添加/删除 PKCS7 填充?

我正在尝试使用128位AES加密(ECB)加密/解密字符串。我想知道的是如何向其中添加/删除PKCS7填充。似乎Mcrypt扩展可以处理加密/解密,但必须手动添加/删除填充。有什么想法吗? 最佳答案 让我们看看。PKCS#7在RFC5652(加密消息语法)中进行了描述。填充方案本身在6.3.Content-encryptionProcess节中给出.它本质上说:根据需要追加那么多字节来填充给定的block大小(但至少是一个),并且每个字节都应该将填充长度作为值。因此,查看最后解密的字节,我们知道要剥离多少字节。(也可以检查它们是否都

php - 为什么不在 PHP 中使用 AES 进行密码加密?

我到处都看到人们谈论在数据库中存储密码,他们几乎总是使用MD5。AES或SHA1有什么问题? 最佳答案 如果您存储的密码是加密的,它可以被解密。由于许多人在许多不同的系统中重复使用密码,这是一件坏事。因此,您使用单向函数,即加密哈希函数-这样就可以验证密码,而无需实际泄露。正如Greg所说,AES是一种加密/解密算法。MD5和SHA家族都是散列函数,比较适合用。但是现在要避开MD5-它不再被视为足够安全。XiaoyunWang在2005年发布了针对它的有效碰撞攻击,现在它的强度被认为大大低于其设计强度-因此在密码学术语中它被“破坏”