jjzjj

java - RSA/ECB/OAEPWithSHA-256AndMGF1Padding 但 MGF1 使用 SHA-256?

coder 2024-03-30 原文

我在 Oracle 的 Java 标准加密提供程序中找到了困难的方法

Cipher cipher = Cipher.getInstance("RSA/ECB/OAEPWithSHA-256AndMGF1Padding");

使用通过 SHA-1 实例化的 MFG1; SHA-256 仅用于散列标签(实际上是空的)。我发现在 MFG1 中实际使用 SHA-256 的唯一解决方案(在 answercomment 的帮助下)是使用 Cipher.init 的替代形式:

cipher.init(Cipher.DECRYPT_MODE, privKey, new OAEPParameterSpec(
    "SHA-256", "MGF1", MGF1ParameterSpec.SHA256, PSource.PSpecified.DEFAULT
));

问题:是否存在 Cipher.getInstance 将识别的转换,其效果类似于 "RSA/ECB/OAEPWithSHA-256AndMGF1Padding" ,除了使用 SHA-256 的 MGF1?

最佳答案

不,没有。

Java 是开源的。如果不确定,您可以查看 OpenJDK 的源代码。

com.sun.crypto.provider.RSACipherinit方法中上面写着:

            spec = new OAEPParameterSpec(oaepHashAlgorithm, "MGF1",
                MGF1ParameterSpec.SHA1, PSource.PSpecified.DEFAULT);

我已经检查了 OpenJDK 的 Java 8 update 60。如您所见,您需要使用算法参数。

关于java - RSA/ECB/OAEPWithSHA-256AndMGF1Padding 但 MGF1 使用 SHA-256?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33572909/

有关java - RSA/ECB/OAEPWithSHA-256AndMGF1Padding 但 MGF1 使用 SHA-256?的更多相关文章

  1. Ruby - 不支持的密码算法 (AES-256-GCM) - 2

    我收到错误:unsupportedcipheralgorithm(AES-256-GCM)(RuntimeError)但我似乎具备所有要求:ruby版本:$ruby--versionruby2.1.2p95OpenSSL会列出gcm:$opensslenc-help2>&1|grepgcm-aes-128-ecb-aes-128-gcm-aes-128-ofb-aes-192-ecb-aes-192-gcm-aes-192-ofb-aes-256-ecb-aes-256-gcm-aes-256-ofbRuby解释器:$irb2.1.2:001>require'openssl';puts

  2. ruby - 256 种颜色,前景和背景 - 2

    这是两个脚本的故事,与previousquestion有关.这两个脚本位于http://gist.github.com/50692.ansi.rb脚本在所有256种背景颜色上显示所有256种颜色。ncurses.rb脚本显示所有256种前景颜色,但背景显示基本的16种颜色,然后似乎循环显示各种属性,如闪烁和反向视频。那么是什么给了?这是ncurses中的错误,它使用带符号的整数来表示颜色对吗?(即'tputcolors'表示256但'tputpairs'表示32767而不是65536)似乎如果是这种情况,颜色对的前半部分会正确显示但后半部分会重复或进入属性作为int包裹。

  3. ruby - 使用 SHA256 摘要签名的 OpenSSL RSA - 2

    我正在尝试找出与我拥有的小型ruby​​脚本等效的shell脚本。这是ruby脚本:require'openssl'require'base64'k=OpenSSL::PKey::RSA.new(File.read("key.pem"))res=File.read("res.tmp")digest=OpenSSL::Digest::SHA256.newsignature=k.sign(digest,res)File.write("foo1.txt",Base64.strict_encode64(signature))就是这样。它需要一些数据,获取它的SHA256哈希值,然后用我拥有的私

  4. ruby - 使用 ruby​​ 中的 SHA256 哈希算法计算符合 RFC 2104 的 HMAC - 2

    我在浏览亚马逊产品广告APIRESTsignaturedocs时卡在了#8CalculateanRFC2104-compliantHMACwiththeSHA256hashalgorithmusingthestringabovewithour"dummy"SecretAccessKey:1234567890.Formoreinformationaboutthisstep,seedocumentationandcodesamplesforyourprogramminglanguage.没关系,在CalculatingaSHAhashwithastring+secretkeyinpytho

  5. ruby-on-rails - 在 Ruby 中使用 HMAC SHA256 - 2

    我正在尝试应用HMAC-SHA256为RestAPI生成key。我正在做这样的事情:defgenerateTransactionHash(stringToHash)key='123'data='stringToHash'digest=OpenSSL::Digest.new('sha256')hmac=OpenSSL::HMAC.digest(digest,key,data)putshmacend它的输出始终是这样的:(如果我将“12345”作为参数或“HUSYED815X”,我会得到相同的结果)ۯw/{o���p�T����:��a�h��E|qAPI因此无法正常工作...有人可以帮我

  6. ruby - Ruby 的 256 色终端库? - 2

    有没有像'Term::ANSIColor这样的gem'哪个适用于256色终端?perl脚本256colors2.pl在myterminal中表现出色,并且我想在我的ruby​​脚本中使用其中一些颜色,而无需手动插入ANSI代码。 最佳答案 在thisguide的一些帮助下,这是256colors2.pl脚本对ruby​​的改编。.它定义了一个print_color(text,foreground,background)方法,应该可以很容易地应用于您的项目。它以彩色打印字符串,然后将颜色重置为终端默认值。如果您愿意,应该很容易跳过重置

  7. ruby - 不支持您提供的授权机制。请使用 AWS4-HMAC-SHA256 - 2

    我收到错误AWS::S3::Errors::InvalidRequest不支持您提供的授权机制。请使用AWS4-HMAC-SHA256.当我尝试将文件上传到新法兰克福地区的S3存储桶时。所有适用于USStandard区域。脚本:backup_file='/media/db-backup_for_dev/2014-10-23_02-00-07/slave_dump.sql.gz's3=AWS::S3.new(access_key_id:AMAZONS3['access_key_id'],secret_access_key:AMAZONS3['secret_access_key'])s3_

  8. javascript - 如何使用 FileReader 读取二进制文件以便在 CryptoJS 中使用 SHA-256 对其进行哈希处理? - 2

    如何使用javascript将UTF-8字符串转换为Latin1编码字符串?这是我正在尝试做的事情:我得到一个文件,通过读取数组缓冲区将其拆分成block然后,我将数组缓冲区解析为字符串并使用以下代码将其传递给cryptoJS以进行哈希计算:cryptosha256=CryptoJS.algo.SHA256.create();cryptosha256.update(text);hash=cryptosha256.finalize();对于文本文件,这一切都适用。使用散列非文本文件(图像/.wmv文件)的代码时出现问题。我在另一个博客中看到CryptoJS作者要求使用Latin1格式而不

  9. javascript - Eclipse JavaScript 格式化程序疯狂(即 : too much padding) - 2

    我无法很好地设置我的JavaScript的eclipse格式。在第一个示例中,它的行为符合预期(不是第二个url的长度):每当我有一个更长的url时,eclipse就会疯狂地格式化我的代码并且我到处都会得到额外的填充,如下例所示:为什么JavaScript格式化程序会这样,我该如何解决?(以防万一:我没有安装任何格式化程序插件,我只是使用EclipseJuno自带的默认插件) 最佳答案 访问即可解决问题Preferences>JavaScript>CodeStyle>Formatter这些是步骤:创建一个新的配置文件(因为您无法编辑

  10. javascript - C# 和 Javascript 之间的 SHA-256 哈希不同 - 2

    我目前正在从事一个项目,该项目将涉及基于数据库行的信用卡刷卡录取。与遗嘱调用系统一样,CC号码的SHA-256哈希值必须与DB行中的哈希值匹配才能被视为“正确的取件”。但是,由于票房系统基于浏览器,因此必须在客户端使用Javascript对取件时的CC号码进行哈希处理,然后与之前下载的调用数据进行比较。但是,当尝试对数字进行哈希处理时,哈希结果总是与创建数据库行时的哈希结果不同(使用VB.NET和SQLServer2008R2)。例如,如果数据库中的CC编号恰好是4444333322221111,则.NET生成的哈希值将变为xU6sVelMEme0N8aEcCKlNl5cG25kl8M

随机推荐