我是Android开发和实现SSLSockets的新手.在做了一些挖掘后,我能够设置一个正常工作的简单服务器/客户端.我认为实现可以使用一些工作,并且难以将密码加载到密钥库而不用纯文本.这是客户端的一些代码.如您所见,我将密码硬编码到本地var中.是否有更好的方法加载密钥库密码,所以我没有在代码中以纯文本形式?

char [] KSPASS = "password".toCharArray();

char [] KEYPASS = "password".toCharArray();

try {

final KeyStore keyStore = KeyStore.getInstance("BKS");

keyStore.load(context.getResources().openRawResource(R.raw.serverkeys), KSPASS);

final KeyManagerFactory keyManager = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());

keyManager.init(keyStore, KEYPASS);

final TrustManagerFactory trustFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());

trustFactory.init(keyStore);

sslContext = SSLContext.getInstance("TLS");

sslContext.init(keyManager.getKeyManagers(), trustFactory.getTrustManagers(), null);

Arrays.fill(KSPASS, ' ');

Arrays.fill(KEYPASS, ' ');

KSPASS = null;

KEYPASS = null;

更新:

事实证明,客户端根本不需要知道密钥库密码.我已修改代码以传入null作为密码.到目前为止,初始测试已经与服务器进行通信.在服务器端,我仍然加载密钥库密码.

final KeyStore keyStore = KeyStore.getInstance("BKS");

keyStore.load(context.getResources().openRawResource(R.raw.serverkeys), null);

final KeyManagerFactory keyManager = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());

keyManager.init(keyStore, null);

final TrustManagerFactory trustFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());

trustFactory.init(keyStore);

sslContext = SSLContext.getInstance("TLS");

sslContext.init(keyManager.getKeyManagers(), trustFactory.getTrustManagers(), null);

java隐藏密钥_java – 在Android中隐藏密钥库密码的最佳方法是什么?相关推荐

  1. java隐藏类_java Class类中隐藏和覆盖的区别

    覆盖 子类扩展父类获得父类当中的方法和成员变量,可是父类中的某些方法,不适合子类本身,所以则需要重写,子类 定义父类方法的过程就是方法的覆盖,字段不能被覆盖,只能被隐藏 用static描述的属性和方法 ...

  2. java屏蔽虚拟按键代码_Android 中隐藏虚拟按键的方法实例代码

    下面通过一段代码给大家讲解android 隐藏虚拟按键的方法,废话不多说了,大家多多看看代码和注释吧,具体代码如下所示: /** * 隐藏虚拟按键,并且全屏 */ protected void hid ...

  3. android Java开发设计模式及在android中的应用解析

    android Java开发设计模式及在android中的应用解析 什么是设计模式: 可以用一句话概括设计模式---设计模式是一种利用OOP的封闭.继承和多态三大特性,同时在遵循单一职责原则.开闭原则 ...

  4. android 退出多个activity,Android 中 退出多个activity的经典方法

    1.使用list集合方式 用list保存activity实例,然后逐一干掉 import java.util.linkedlist; import java.util.list; import and ...

  5. Android中集成第三方库的方法和问题

    Android中集成第三方库的方法和问题 声明: 1. 本文參考了网上同学们的现有成果,在此表示感谢,參考资料在文后有链接. 2. 本文的重点在第三部分,是在开发中遇到的问题及解决的方法.第一,第二部 ...

  6. 如何在Android中使用emojicon库集成表情符号, 妈妈在也不用担心我的表情了~~~

    如何在Android中使用emojicon库集成表情符号 最全最专业的emojicon库教程. 在本教程中,我们将学习如何通过一个简单的示例在Android应用程序中使用emojicon库集成  表情 ...

  7. Android中的坐标系以及获取坐标的方法

    [日期:2015-11-22] 来源:Linux社区  作者:fuly550871915 Android中有两种坐标系,分别称之为Android坐标系和视图坐标系.而对应的也有一些相关的方法可以获取坐 ...

  8. android onclick方法吗,Android中button的onClick事件几种方法

    Android中button的onClick事件几种方法 发布时间:2020-09-03 02:36:31 来源:脚本之家 阅读:100 作者:水桶前辈 Android中button的onClick事 ...

  9. 在Android中调用KSOAP2库访问webservice服务出现的服务端传入参数为null的问题解决

    在Android中调用KSOAP2库访问webservice服务出现的服务端传入参数为null的问题解决 参考文章: (1)在Android中调用KSOAP2库访问webservice服务出现的服务端 ...

最新文章

  1. [SCOI2005]王室联邦
  2. java有趣项目_有趣的java小项目------猜拳游戏
  3. [NowCoder牛客]2021NOIP提高组模拟赛第二场T3——树数树(启发式合并堆)
  4. 【CodeForces - 1038B 】Non-Coprime Partition (构造,数组特征)
  5. spingboot下shiro自定义过滤器roles
  6. SSH远程登录VWware上的LFS
  7. 2016京东编程题:年终奖
  8. 详解:MapReduce 思想解析
  9. Spark稀疏向量和稠密向量
  10. 30岁的我们还能做什么?
  11. 排序算法之——选择排序分析
  12. 无限磁力_给力的磁力搜索网站你都知道吗?
  13. 50个认知偏误:Elon Musk thinks everyone should know about
  14. Java身份证号码校验
  15. 什么是幽默?什么是高级幽默?
  16. d610网络计算机,尼康D610评测:机身细节
  17. c++ qt 操作Excel 实现冻结窗格的功能。
  18. 树莓派程序开机自启(尝试过很多终于成了)
  19. GB2312、GB18030、GBK、UNICODE、BIG5之间兼容关系如何?
  20. 计算机在有限元法中的作用,有限元法的概述

热门文章

  1. HTML5中lineCap端点样式遇到closePath()
  2. JSONP跨域原理和jQuery.getJSON用法
  3. 分享制作精良的知识管理系统 配置SQL Server文档数据库 完美实现博客文章的的下载,存储和浏览...
  4. [Leedcode][JAVA][第983题][最低票价][动态规划]
  5. HDU odd-even number 数位dp
  6. brew 安装 mysql5.7_Mac——brew替换源地址安装配置mysql@5.7版本
  7. 505B. Mr. Kitayuta‘s Colorful Graph
  8. 给与用户建立dblink的权限_网络安全 之 NTFS安全权限
  9. 秦九韶算法matlab程序,数值分析matlab程序实例.doc
  10. linux内核设计与实现 怎么读,《Linux内核设计与实现》读书笔记(一)