我见过示例here。一切都很好,我理解它,但它依赖于提供商的bounceycastle库。如果我能提供帮助,我不想将任何其他第三方库与我的应用程序捆绑在一起。我不需要堡垒风格的安全性,只需要一些基本的对称加密来通过线路传输。如何在Android上使用第三方库进行基本加密?
谢谢
答案 0 :(得分:5)
如果我能提供帮助,我不想将任何其他第三方库与我的应用捆绑在一起。
您不需要第三方库来使用javax.crypto
。有使用javax.crypto
的在线示例,例如this和this。如果您需要Base64编码器,Android 2.2中有一个,或者也有开源实现。
答案 1 :(得分:5)
BouncyCastle包含在Android中,因为您可以看到是否会尝试包含它:D/dalvikvm( 9268): DexOpt: not verifying 'Lorg/bouncycastle/x509/extension/SubjectKeyIdentifierStructure;': multiple definitions
等等。
但是,并非所有算法都已实现 - 您将获得NoSuchAlgorithmException。 在Android 2.2中,我发现了这些实现:
PBEWITHSHAAND128BITAES-CBC-BC
PBEWITHSHAAND3-KEYTRIPLEDES-CBC
1.2.840.113549.1.1.7
PBEWITHSHA256AND256BITAES-CBC-BC
PBEWITHSHAAND192BITAES-CBC-BC
DESEDE
DES
1.2.840.113549.3.7
PBEWITHSHAAND2-KEYTRIPLEDES-CBC
1.3.14.3.2.7
PBEWITHSHA256AND192BITAES-CBC-BC
PBEWITHSHAAND256BITAES-CBC-BC
PBEWITHSHAAND40BITRC2-CBC
AES
2.16.840.1.101.3.4.1.42
PBEWITHSHA256AND128BITAES-CBC-BC
2.16.840.1.101.3.4.1.22
2.16.840.1.101.3.4.1.2