我用谷歌搜索过,我已经进行过实验,但我没有运气。
我正在编写一个在android,windows / linux java和raspberry pi之间进行对话的程序,我希望在一方加密某些东西,在另一方面解密,在所有方向,我希望它能在每个可能的平台案例。
Blowfish和DES最终给了我可怕的“给定最后一块没有正确填充” 在一个平台或另一个平台上,AES在树莓上变得如此缓慢而无用。 我已经尝试了各种各样的秘密关键因素和密钥生成器,以及我的主要剪切和粘贴技能所允许的一切,并且没有任何作用。
非常令人沮丧,我正在考虑使用ROT13。至少我知道这很有效。
我知道有人要求提供代码示例,所以这里......它是与其他人展示的相同的代码。
public static SecretKey generatedessecretkey(String password) throws InvalidKeyException, UnsupportedEncodingException, NoSuchAlgorithmException, InvalidKeySpecException
{
DESKeySpec keySpec = new DESKeySpec(password.getBytes("UTF8"));
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
SecretKey key = keyFactory.generateSecret(keySpec);
return key;
}
public static void encrypt(IOLogger log, byte[] datablock, String grouppw, ArrayList<byte[]> resp)
{
try
{
SecretKey ks = generatedessecretkey(grouppw);
Cipher cipher = Cipher.getInstance("DES");
cipher.init(Cipher.ENCRYPT_MODE, ks);
byte[] b = cipher.doFinal(datablock);
resp.clear();
resp.add(b);
return;
}
catch (Exception e)
{
}
}
编辑:这是解密,后面是同样的事情
public static void desdecrypt(IOLogger log, byte[] datablock, String grouppw, ArrayList<byte[]> resp)
{
try
{
SecretKey ks = generatedessecretkey(grouppw);
Cipher cipher = Cipher.getInstance("DES");
cipher.init(Cipher.DECRYPT_MODE, ks);
byte[] b = cipher.doFinal(datablock);
resp.clear();
resp.add(b);
return;
}
catch (Exception e)
{
}
}
答案 0 :(得分:0)