android中进行https连接的方式

匿名 (未验证) 提交于 2019-12-03 00:22:01
原文地址为:android中进行https连接的方式

转载地址:点击打开链接

如果不需要验证服务器端证书,直接照这里做

  1. publicclassextends
  2. private
  3. @Override
  4. publicvoid
  5. super
  6. privatevoid
  7. try
  8. "TLS"
  9. nullnewnewnew
  10. new
  11. new
  12. true
  13. true
  14. newnew
  15. new
  16. whilenull
  17. catch
  18. this
  19. privateclassimplements
  20. @Override
  21. publicboolean
  22. returntrue
  23. privateclassimplements
  24. @Override
  25. publicvoid
  26. throws
  27. @Override
  28. publicvoid
  29. throws
  30. @Override
  31. public
  32. returnnull

如果需要验证服务器端证书 (这样能够防钓鱼),我是这样做的,还有些问题问大牛:
a.
b.

  1. "robusoft.cer"
  2. try
  3. //读取证书
  4. "X.509"//问1
  5. //创建一个证书库,并将证书导入证书库
  6. "PKCS12""BC"//问2
  7. nullnull
  8. "trust"
  9. return
  10. finally
  11. //把咱的证书库作为信任证书库
  12. new
  13. new"https"443
  14. //完工
  15. new

问1:这里用"PKCS12"不行

答1:PKCS12和JKS是keystore的type,不是Certificate的type,所以X.509不能用PKCS12代替


问2:这里用"JKS"不行。

答2:android平台上支持的keystore type好像只有PKCS12,不支持JKS,所以不能用JKS代替在PKCS12,不过在windows平台上是可以代替的


----------------------------------------------分割线-------------------------------------------------------------------------

1。数据通信时加密,不同平台加密后的结果不同,用的库不同吧(进行相应的修改比较麻烦)

2。采用https,系统自动做好了,简单一些

https与http的通信,在我看来主要的区别在于https多了一个安全验证机制,而Android采用的是X509验证,首先我们需要这重写X509类,建立我们的验证规则、、不过对于特定的项目,我们一般都是无条件信任服务端的,因此我们可以对任何证书都无条件信任(其实本质上我们只是信任了特定url的证书,为了偷懒,才那么选择的)/**

  1. classimplements
  2. public
  3. returnnew
  4. @Override
  5. publicvoid
  6. throws
  7. @Override
  8. publicvoid
  9. throws
  1. classimplements
  2. public
  3. returnnew
  4. @Override
  5. publicvoid
  6. throws
  7. @Override
  8. publicvoid
  9. throws

  1. staticnewnew
  2. privatestaticvoid
  3. try
  4. "TLS"
  5. nullnew
  6. catch
  7. staticnew
  8. @Override
  9. publicboolean
  10. returntrue
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!