Tag: 加密

Java和PHP中的XOR密码:不同的结果

假设我有一个简单的文字, 一杯漂亮的奶茶 ,它将与密钥12345进行XOR密码加密。 这个Java代码: import sun.misc.BASE64Encoder; import sun.misc.BASE64Decoder; public class XORTest { public static void main(String args[]){ String plaintext = “a nice cup of milk tea”; String key = “12345”; String encrypted = xor_encrypt(plaintext, key); String decrypted = xor_decrypt(encrypted, key); System.out.println(“Encrypted: “+encrypted); System.out.println(“Decrypted: “+decrypted); } public static String xor_encrypt(String message, String key){ try { if […]

Java – 使用blowfish加密时缺少最终字符

我正在使用一些使用Blowfish加密文本文件内容的j​​ava代码。 当我将加密文件转换回来(即解密它)时,字符串从末尾开始缺少一个字符。 有什么想法吗? 我对Java很陌生,并且在没有运气的情况下花了好几个小时。 war_and_peace.txt文件只包含字符串“This is some text”。 decrypted.txt包含“这是一些tex”(最后没有)。 这是java代码: public static void encrypt(String key, InputStream is, OutputStream os) throws Throwable { encryptOrDecrypt(key, Cipher.ENCRYPT_MODE, is, os); } public static void decrypt(String key, InputStream is, OutputStream os) throws Throwable { encryptOrDecrypt(key, Cipher.DECRYPT_MODE, is, os); } private static byte[] getBytes(String toGet) { try { byte[] retVal = […]

使用Java生成带有BouncyCastle的X509Certificate

这就是我现在生成的数字证书。 现在我能够生成一个密码保护私钥的数字证书。 public static void main(String[] args) throws Exception { Security.addProvider(new BouncyCastleProvider()); testKeyStore(); } public static void testKeyStore() throws Exception { try { String storeName = “d://suresh_test.cer”; java.security.KeyPairGenerator keyPairGenerator = KeyPairGenerator .getInstance(“RSA”); keyPairGenerator.initialize(2048); KeyPair keyPair = keyPairGenerator.generateKeyPair(); PublicKey publicKey = keyPair.getPublic(); PrivateKey privateKey = keyPair.getPrivate(); X509Certificate trustCert = createCertificate(“CN=CA”, “CN=CA”, publicKey, privateKey); java.security.cert.Certificate[] outChain = […]

如何在Python中加密并在Java中解密?

我正在尝试加密Python程序中的一些数据并将其保存,然后在Java程序中解密该数据。 在Python中,我正在加密它: from Crypto.Cipher import AES KEY = ‘12345678901234567890123456789012’ def encrypt(data): cipher = AES.new(KEY, AES.MODE_CFB) return cipher.encrypt(data) 在Java中,我正在解密它: import java.security.*; import javax.crypto.*; import javax.crypto.spec.SecretKeySpec; public class Encryption { private static byte[] KEY = { ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’, ‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’, ‘0’, ‘1’, […]

如何将HSM加密与JAVA集成?

如何将硬件安全模块加密与Java应用程序集成? 我正在寻找代码样本连接到HSM,生成密钥(非对称,对称),加密和解密数据(非对称,对称)和存储密钥。

如何通过提供PrivateKey来获取RSA PublicKey?

我正在寻找一个Java函数,它将获得一个RSA PrivateKey并将返回正确的RSA PublicKey? 或者,是否有一个函数可以告诉我们RSA PrivateKey / PublicKey是否有效?

如何在不知道IV的情况下解密pbkdf2加密文本

我正在尝试解密加密文本。 我有盐值,迭代次数和密钥长度。 但是我没有初始化向量(IV)值,我该如何解决这个问题。 我也有秘密钥匙。 暂时我使用的是一些大小为16字节的随机IV值。 但我仍然无法正确解密该值。 任何人都可以帮忙,因为我长期坚持这个? 以下是给我的价值。 salt= EW0h0yUcDX72WU9UiKiCwDpXsJg=, Iteration=128,Keylenght=16. MasterKeyName=”Passphrase1″, MACMethod algo = hmac-sha1, MACKey=”jq/NdikC7AZf0Z+HEL5NrCICV8XW+ttzl/8687hVGHceoyJAaFws+111plQH 6Mlg” encrypted kae = “pM7VB/KomPjq2cKaxPr5cKT1tUZN5tGMI+u1XKJTG1la+ThraPpLKlL2plKk6vQE” and valuemac=”lbu+9OcLArnj6mS7KYOKDa4zRU0=”. Secret key = “xxxxxxxxxxx”. 下面是我用来解密的代码。 SecretKeyFactory factory = SecretKeyFactory.getInstance(“PBKDF2WithHmacSHA1”); KeySpec spec = new PBEKeySpec(secretkey.toCharArray(), salt, iterationCount, keyStrength); SecretKey tmp = factory.generateSecret(spec); key = new SecretKeySpec(tmp.getEncoded(), “AES”); dcipher = Cipher.getInstance(“AES/CBC/PKCS5Padding”); AlgorithmParameters params […]

在没有解密的情况下,将byte 中的加密图像转换为java中的BufferedImage

我需要将存储在byte[]加密图像转换为BufferedImage 。 我使用了以下代码: InputStream in = new ByteArrayInputStream(imageInByte); BufferedImage bImageFromConvert = ImageIO.read(in); 但是bImageFromConvert为null。 我用谷歌搜索并找到了它的原因,因为图像是加密的,ImageIO无法读取它。 堆栈溢出中建议的解决方案是解密图像然后进行转换。 但它不适用于我的情况,因为我需要在这个加密的图像中嵌入一条消息,并使用下面的代码: public class EmbedMessage { //BufferedImage sourceImage,embeddedImage; public static BufferedImage embedMsg(BufferedImage sourceImage,String mess) { //String mess = “hai”; BufferedImage embeddedImage = sourceImage.getSubimage(0,0, sourceImage.getWidth(),sourceImage.getHeight()); embedMessage(embeddedImage, mess); return embeddedImage; } private static void embedMessage(BufferedImage img, String mess) { int messageLength = mess.length(); […]

如何使用crypto-js库在客户端加密消息并在Java服务器上解密它

背景:我正在处理的应用程序应该脱机工作。 我有一个HTML5页面,用户键入的数据使用crypto-js库加密。 我希望将加密的消息发送到java webserver,然后在服务器端解密。 我正在做什么我能够使用Crypto-js加密消息 var message = “my message text”; var password = “user password”; var encrypted = CryptoJS.AES.encrypt( message ,password ); console.log(encrypted.toString()); // this prints an encrypted text “D0GBMGzxKXU757RKI8hDuQ==” 我想要做的是将加密文本“D0GBMGzxKXU757RKI8hDuQ ==”传递给java服务器端代码并​​解密加密的消息。 我尝试了很多选项来解密java服务器端的crypto-js加密消息。 请在服务器端找到我的代码,该代码应该对加密文本进行解密。 public static String decrypt(String keyText,String encryptedText) { // generate key Key key = new SecretKeySpec(keyText.getBytes(), “AES”); Cipher chiper = Cipher.getInstance(“AES”); […]

AES文件解密“给定最终块未正确填充”

我想加密然后解密文件使用AES。 我已经阅读了很多关于错误的主题”Given final block not properly padded” 。 但我找不到解决方案。 抱歉指定我的代码的语言,我不知道写java语言 这是我的代码: 变量 // IV, secret, salt in the same time private byte[] salt = { ‘h’, ‘u’, ‘n’, ‘g’, ‘d’, ‘h’, ‘9’, ‘4’ }; public byte[] iv; public SecretKey secret; createSecretKey public void createSecretKey(String password){ SecretKeyFactory factory = SecretKeyFactory.getInstance(“PBKDF2WithHmacSHA1”); KeySpec spec = new PBEKeySpec(password.toCharArray(), salt, […]