草庐IT

java - PKCS5Padding 可以使用 AES/GCM 模式吗?

AES/GCM的填充模式是什么?我知道它可以是NoPadding,因为在ECB模式下它可以是PKCS5Padding,在GCM模式下怎么样?在JCE接口(interface)中,我们需要提供“算法/模式/填充”(Reference)。所以我使用下面的代码来获取实例,它在JDK中工作,但在IBMSDK中失败,它说cannotfindproviderforsupportingAES/GCM/PKCS5PaddingCipher.getInstance("AES/GCM/PKCS5Padding");填充的实际用例是什么? 最佳答案 GC

java - 如何将填充添加到字节数组?

我在byteArray中有这个40位key大小为8,我想向其添加0填充,直到它变为56位。byte[]aKey=newbyte[8];//HowIinstantiatedmybytearray有什么想法吗? 最佳答案 一个8字节的数组是64位的。如果将数组初始化为byte[]aKey=newbyte[8]所有字节都用0初始化。如果您设置前40位,即5个字节,那么您的其他3个字节,即从41到64位仍然设置为0。因此,默认情况下,您将第41位到第56位设置为0,并且您不必须重置它们。但是,如果您的数组已经用一些值进行了初始化并且您想清除

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

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

java - 错误填充异常 : pad block corrupted

我正在尝试使用Rijndael/CBC/PKCS7解密在C#中加密的Java文件。我不断收到以下异常:javax.crypto.BadPaddingException:padblockcorruptedatorg.bouncycastle.jce.provider.JCEBlockCipher.engineDoFinal(UnknownSource)atjavax.crypto.Cipher.doFinal(DashoA13*..)atAESFileDecrypter.decrypt(AESFileDecrypter.java:57)当Web服务器为第一个字节[]调用doFinal(i

java keytool 给出 "final block not properly padded"

根据step3bofthisJettyguideforusingKeytoolandOpenSSL,laststep,我正在执行命令:keytool-importkeystore-srckeystorejetty.pkcs12-srcstoretypePKCS12-destkeystorekeystore当我运行命令时,我得到:keytoolerror:java.io.IOException:failedtodecryptsafecontentsentry:javax.crypto.BadPaddingException:Givenfinalblocknotproperlypadded

java - 将文本加密为 AES/CBC/PKCS7Padding

我正在开发一个Web应用程序来使用Java6加密一些文本。我必须做的加密是CBC模式的AES(Rijndael),带有PKCS7填充和128位key。我看到一篇文章解释了如何以我必须执行的相同方式进行加密,但使用PKCS5填充。文章链接在这里:https://bit502.wordpress.com/2014/06/27/codigo-java-encriptar-y-desencriptar-texto-usando-el-algoritmo-aes-con-cifrado-por-bloques-cbc-de-128-bits/我改变privatefinalstaticString

Java 7 -> Java 8 : AES Causes exception: "BadPaddingException: Given final block not properly padded" in conjunction with BufferedReader & ZipStreams

我们使用以下语句实例化密码:Ciphercipher=Cipher.getInstance("AES");SecretKeySpeckey=newSecretKeySpec(cipherKey,"AES");这在Java7(1.7_45)中有效,但在Java8(1.8_25)中不再有效。我们将cipher传递给CipherInputStream并使用流来读取/写入数据。实际异常发生在close期间。编辑:快速查看JDK代码会发现BadPaddingException被重新抛出,在7中它被忽略了:JDK7:CipherInputStream.close:try{this.cipher.d

JavaFX TextField 在焦点上将填充更改为 0

我正在尝试为JavaFX中的文本字段设置填充(使用Java8_192)。我有一个简单的VBox,里面有3个TextFields。如果我在第一个TextField上手动设置填充,当我聚焦它们时,其他TextFields会以某种方式将它们的填充重置为0。第一个TextField有一个手动填充:当聚焦第二个(或第三个)TextField时,它们的填充为0:如果我关注不同的东西,它们的填充将重置为javafx(4,7,4,7)设置的通常填充。奇怪的是,如果我设置tf2的填充而不是tf1,就不会有任何问题。此外,如果我手动设置每个TextField的填充,它们将不会重置为0。但这显然不是答案..

java - 异常 : "Given final block not properly padded" in Linux, 但它适用于 Windows

我的应用程序在Windows中运行,但在Linux中失败并出现Givenfinalblocknotproperlypadded异常。配置:JDK版本:1.6Windows:版本7Linux操作系统:CentOS5.864位我的代码如下:importjava.io.IOException;importjava.io.UnsupportedEncodingException;importjava.security.InvalidKeyException;importjava.security.Key;importjava.security.NoSuchAlgorithmException;

java - 如何删除仍然使用流布局的 JPanel 之间的填充?

这是我有疑问的Java应用程序GUI部分。这个GUI包含一个蓝色的JPanel(容器),默认FlowLayout作为LayoutManager,它包含一个包含两个JPanel的Box(以删除水平间距,或者我可以使用setHgaps为零而不是一个Box)它每个都包含一个JLabel。这是我创建该部分GUI的代码。privatevoidsetupSouth(){finalJPanelsouthPanel=newJPanel();southPanel.setBackground(Color.BLUE);finalJPanelinnerPanel1=newJPanel();innerPanel