jjzjj

java - 在 Java 中使用 AES 256 加密 RSA 私钥

我正在用Java编写一个安全的文件共享应用程序。总体架构如下所示:用户希望加密文件以在多个用户之间安全共享。应用程序在客户端生成一个随机UUID并将其用作AES256密码,并使用UUID加密数据。然后使用每个人的公钥对UUID进行RSA加密。每个共享用户一次。每个加密的UUID数据包都作为文件的一部分存储在自定义文件头中。然后文件会上传到其他人可以访问的服务器。每个用户都可以使用他们的私钥来读取AES加密key并解密文件。这里是陷阱。用户的私钥必须加密并存储在我们服务器的数据库中,以便可以从多个位置访问文件。在上传到服务器之前,私钥将使用客户端上用户选择的密码进行加密。我想使用AES2

java - 如何使用 Rijndael 和 256 位的 block 大小进行加密或解密?

出于某些原因,我需要使用256位block大小而不是使用128位block大小的AES实现Rijndael解压(原因:数据在PHP中使用Rijndael加密...)。如何更改密码的block大小?如果我只是用"RIJNDAEL/CFB/PKCS5Padding"获得密码并尝试用256位初始化IV,我会得到一个异常,因为block大小只有128位。 最佳答案 除了具有128位block大小的Rijndael之外,任何SunJCE供应商都不支持任何算法:这是AES算法。要获得具有256位block大小的rijndael,您将不得不去其他

java - AES-256 和 PKCS7Padding 在 Java 中失败

我有几个库,C#、PHP和Android,它们都以相同的方式加密/解密字符串,因此它们彼此兼容,即C#将数据写入数据库并加密,PHP可以成功解密它并返回原始字符串。我现在需要对标准Java应用程序做同样的事情,所以我从我的Android库中获取代码并需要库,但我遇到了异常。据我所知,代码不是特定于Android的,因此应该不是问题。下面是我的加密函数publicstaticStringencrypt(StringplainPasword){Stringpassword="";try{SecretKeySpeckey=newSecretKeySpec("hcxilkqbbhczfeult

java - PBEWITHSHA256AND128BITAES-CBC-BC 在 RedHat 6.4 上创建 java.security.NoSuchAlgorithmException

我们有一个应用程序使用BouncyCaSTLe通过PBEWITHSHA256AND128BITAES-CBC-BC算法加密数据。它在运行OpenJDK1.7的Ubuntu上运行良好。但是,当我们将其移动到同时运行OpenJDK1.7的RedHat6.4时,我们会遇到以下异常:java.security.NoSuchAlgorithmException关于可能导致此问题的任何想法。我们如何将PBEWITHSHA256AND128BITAES-CBC-BC算法添加到RedHat6.4?p.s.应用程序在JBoss中运行。privateStringcryptoAlgorithm="PBEWI

java - 如何正确使用 "PBEWithHmacSHA512AndAES_256"算法?

我正在做一些Java加密,但无法找到正确使用PBEWithHmacSHA512AndAES_256算法的方法。加密似乎工作正常,但我无法正确初始化解密密码。下面是一个演示该问题的简短程序。特别是,请参阅“问题”评论。注:我看过thisveryhelpfulanswer,我可以使用该方案让事情正常进行,但我很想知道我在这里做错了什么。importjava.nio.charset.StandardCharsets;importjavax.crypto.Cipher;importjavax.crypto.SecretKey;importjavax.crypto.SecretKeyFactor

java - 为什么我的 Java 和命令行 SHA256 输出不同?

我在命令行和Android上的Java中对字符串进行哈希处理得到的输出不同。我确定我做错了什么,但我看不出是什么。命令行:kevin@aphrodite:~$echoderp|sha256sumee673d13de31533a375b41d9e57731d9bb4dbddbd6c1d2364f15be40fd783346-Java:finalStringplaintext="derp";finalMessageDigestmd;try{md=MessageDigest.getInstance("SHA-256");}catch(NoSuchAlgorithmExceptione){/*

hmac-sha256的纯js写法,无需引入外部模块,引入就可以直接用(微信小程序先享后付,HMAC-SHA256加密算法)

hmac-sha256的纯js写法,无需引入外部模块,引入就可以直接用(微信小程序先享后付,HMAC-SHA256加密算法)在html里面的用法↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓//具体用法 //varhmac256=require("../../../utils/hmac256.js"); ////先充后付//varmch_id='1514221471';//varnonce_str=utils.randomString();//varpackage1=res.data.data;//varsign_type='HMAC-SHA256';//vartimestamp=utils.getTime

c# 和 java - hmacsha256 哈希之间的区别

我在Java中有以下代码:byte[]secretKey=secretAccessKey.getBytes("UTF-8");SecretKeySpecsigningKey=newSecretKeySpec(secretKey,"HmacSHA256");Macmac=Mac.getInstance("HmacSHA256");mac.init(signingKey);byte[]bytes=data.getBytes("UTF-8");byte[]rawHmac=mac.doFinal(bytes);Stringresult=javax.xml.bind.DatatypeConver

java - 使用 READ BINARY 读取超过 256 个字节

我正在尝试使用javax.smartcardio读取智能卡(GermanGesundheitskarte)在definitionEF“PD”的长度指定为850字节。内容应该是gzippedISO5589-15编码的XML字符串,如指定的here作为CommandAPDU我发送00B0000000获取前256个字节。发送后00B000FF00我得到接下来的256个字节。但我如何获得其余部分呢?我如何知道二进制数据何时结束?GermanSpecificationPart1|GermanSpecificationPart2 最佳答案 RE

java - Java 中基于 AES-256 密码的加密/解密

我找到了在Java中实现AES加密/解密的指南,并在将其放入我自己的解决方案时尝试理解每一行。但是,我并不完全理解它,因此遇到了问题。最终目标是进行基于密码的加密/解密。我已经阅读了关于此的其他文章/stackoverflow帖子,但大多数都没有提供足够的解释(我对Java中的加密非常陌生)我现在的主要问题是,即使我设置了byte[]saltBytes="Hello".getBytes();最后我仍然得到不同的Base64结果(char[]password每次都是随机的,但我读到以char[]形式保留密码更安全。我的另一个问题是,当程序到达decrypt()时,我在byte[]salt