jjzjj

Cryptography

全部标签

java - AES用openssl命令行工具加密,用Java解密

我有一个使用openssl工具加密的bash脚本。#!/bin/bashkey128="1234567890123456"iv="1234567890123456"opensslenc-aes-128-cbc-intest-outtest.enc-K$key128-iv$iv以及尝试解密脚本生成的文件的Java代码。publicclasscrypto{publicstaticvoidmain(String[]args){try{Filef=newFile("test.enc");Cipherc;Keyk;StringsecretString="010203040506070809000

java - Mac#doFinal() 在 Java 中是线程安全的吗?

在java中,我们需要为太多的文本数据生成HmacSHA1/256消息摘要,当然还要并行。现在的问题是,javax.crypto.Mac#doFinal(byte[]:arg)是线程安全的,还是通过sun/oracle(hotspot)实现SPI更好?所有的盐键都是相同的,我正在考虑准备一个Macobj,所有线程都会调用它来生成消息摘要。我无法用javadoc来理解和表述它.如果这个人不是线程安全的,是否有任何等效项(可能来自Apache,...)?谢谢。 最佳答案 javax.crypto.Mac#doFinal方法都不是线程安全

java - 这个Java加密代码线程安全吗?

我想将以下代码用于需要对某些数据进行加密和解密的高并发应用程序。所以我需要知道应该同步这段代码的哪一部分(如果有的话),以避免出现不可预知的问题。publicclassDesEncrypter{Cipherecipher;Cipherdcipher;//8-byteSaltbyte[]salt={(byte)0xA9,(byte)0x9B,(byte)0xC8,(byte)0x32,(byte)0x56,(byte)0x35,(byte)0xE3,(byte)0x03};intiterationCount=19;DesEncrypter(StringpassPhrase){try{//

java - 使用 Bouncy CaSTLe Java 生成 X509 证书

我正在寻找在Java中使用BC生成X509证书的示例或教程。很多示例都拥有/使用已弃用的API。我查看了BC,但它没有显示哪个类做了什么或没有适当的文档/示例。如果您对此有任何想法,请指点我可以使用BC生成X509证书的教程。[生成并写入公钥和私钥到文件] 最佳答案 KeyPairGenerator的创建:privateKeyPairGeneratorcreateKeyPairGenerator(StringalgorithmIdentifier,intbitCount)throwsNoSuchProviderException,N

c++ - 在键上使用 gpg --list-packets 的输出来获取 mpi 值以生成 s 表达式

我正在尝试使用gpg生成的公钥使用libgcrypt进行加密。我在key上使用了listpackets命令来获取key的内容,并将mpi值解析为一个s表达式。因此,当我尝试使用我的公钥对我的sessionkey进行编码时,我收到错误消息“S表达式中的奇数十六进制数”?我认为列表数据包可能会给我没有前导零的十六进制数字?如果是这样,我需要做什么才能获得可以在libgcrypt中使用的mpi值? 最佳答案 经过gpg和libgcrypt邮件列表的反复试验和建议后,listpackets命令会截断mpi值中的前导零,因此您必须在mpi值前

c++ - 我的 RC6 实现有什么问题?

谁能看出我哪里出错了?我知道该算法将正确解密加密数据。然而,根据RC6paper的说法,大多数加密数据并不是正确的输出。//hexlify(string)turnsastringintoitshexrepresentation:hexlify("AB")->"4142"//unhexlify(string)turnsastringintoitsASCIIrepresentation:unhexlify("4142")->"AB"//uint128_tismyownversionofuint128,andImprettysurethatthemathiscorrect//little_e

c++ - AES/CBC 加密和解密之间的速度差异?

我想知道,从理论上讲,在以下条件下,与AES/CBC加密相比,AES/CBC解密要慢多少:32字节(256位)的加密key;16字节(128位)的block大小。我问的原因是我想知道我有一个实现的解密速度是否异常慢。我对不同大小的随机内存块做了一些测试。结果如下:64B:64KB:10MB–520MB:所有数据都存储在我系统的内存中。应用程序自行生成要加密的数据。测试PC上禁用了虚拟内存,因此不会有任何I/O调用。在分析表时,加密和解密的差异是否意味着我的实现异常缓慢?我做错了什么吗?更新:此测试在另一台电脑上执行;这个测试是用随机数据执行的;Crypto++用于AES/CBC加密和解

c++ - ECDSA 未正确签名/验证

我目前在使用Crypto++签署/验证字符串时遇到问题。我已经尝试了这个网站上列出的方法几个月,但没有成功。我之前尝试过这里发布的C风格解决方案:http://www.cryptopp.com/wiki/Elliptic_Curve_Digital_Signature_Algorithm,但目前正在使用过滤器进行实现。我下面的尝试是对此处发布的解决方案的修改:GetECDSAsignaturewithCrypto++.以下代码输出错误:错误:VerifierFilter:数字签名无效ECDSA::PrivateKeyprivateKey;ECDSA::PublicKeypublicKe

c++ - C++ 中大型模的模幂运算失败

这是我用来计算(n^p)%mod的代码。不幸的是,当我从main()方法调用它时,它会因mod的大值(在我的例子中是mod=10000000000ULL)而失败。任何的想法;为什么?ullpowMod(ulln,ullp,ullmod){ullans=1;n=n%mod;while(p){if(p%2==1){ans=(ans*n)%mod;}n=(n*n)%mod;p/=2;}returnans;}这里,ull是unsignedlonglong的类型定义。 最佳答案 是的,您可以在C++中完成。正如其他人所指出的那样,您不能直接这

c++ - 如何在 C++ 中使用 openssl 加密库 header ?

我正在尝试测试openssl附带的加密库,我从http://www.openssl.org/source/下载了openssl它包含一个/crypto文件夹,其中包含每种加密类型的子文件夹。我想尝试BIO_f_base64,所以我创建了一个空的控制台应用程序,并添加了所需的包含,还将/bio和/evp文件夹的路径添加到c++incl目录,还添加了主/openssl文件夹。当我尝试编译时,我得到无法打开包含文件:'openssl/e_os2.h':没有这样的文件或目录但是文件在那里,我应该以不同的方式使用加密库吗?我如何使用它只添加/openssl路径而不添加我使用的所有加密子文件夹?我