有关将文本文件从移动设备安全地发送到服务器的建议

时间:2015-03-30 13:03:05

标签: php android http post encryption

我必须通过HTTP安全地将Android设备中的txt文件发送到Apache PHP Web服务器。我想知道可以实现的最佳方法。

txt文件可能非常大,最高可达20Mb,但在大多数情况下,它会小于1Mb。我不确定哪种HTTP方法适合,我正在考虑POST。

安全我的意思是如果请求被拦截,任何人(甚至文件的发件人)都不应该读取txt文件的内容。我正在考虑使用在每个Android设备上生成的唯一密钥加密(我不知道如何)。

我想了解实现这一目标的替代方案和更好的方法。

2 个答案:

答案 0 :(得分:1)

在项目中使用此加密文件

public class SEncryption {

private static final String ALGO = "AES";
private static final byte[] keyValue = new byte[] { 'O', 'u', 'r', 'B',
'e', 's', 't','S', 'e', 'c', 'r', 'e', 't', 'K', 'e', 'y' };

public static String encrypt(String Data) throws Exception {
Key key = generateKey();
Cipher c = Cipher.getInstance(ALGO);
c.init(Cipher.ENCRYPT_MODE, key);
byte[] encVal = c.doFinal(Data.getBytes());
Base64 ob=new Base64();
String encryptedValue = Base64.encodeBytes(encVal);
return encryptedValue;
}

public static String decrypt(String encryptedData) throws Exception {
Key key = generateKey();
Cipher c = Cipher.getInstance(ALGO);
c.init(Cipher.DECRYPT_MODE, key);
byte[] decordedValue = Base64.decode(encryptedData);
byte[] decValue = c.doFinal(decordedValue);
String decryptedValue = new String(decValue);
return decryptedValue;
}

private static Key generateKey() throws Exception {
Key key = new SecretKeySpec(keyValue, ALGO);
return key;
}
public static void main(String[] args) throws Exception {

        String password = "346333";
        String passwordEnc = encrypt(password);
        String passwordDec = decrypt(passwordEnc);

        System.out.println("Plain Text : " + password);
        System.out.println("Encrypted Text : " + passwordEnc);
        System.out.println("Decrypted Text : " + passwordDec);
    }

}

用于加密文本

SEncryption s=new SEncryption();
            String encryptedtext=s.encrypt("the text");

答案 1 :(得分:0)

使用互联网上提供的一些免费加密算法来加密文本文件,并使用唯一的安卓代码作为密钥。现在使用唯一代码(密钥)将文件发送到服务器并在那里解密。

一种简单的加密算法:http://en.wikipedia.org/wiki/Tiny_Encryption_Algorithm