android - 在 Android 中为 diffie-hellman 生成密钥需要太长时间
问题描述
目前我正在尝试为 Android 中的应用程序实现 diffie-hellman 密钥交换。但是,我遇到了一个问题。我读到 diffie-hellman 的推荐密钥大小是 2048,但是当我尝试在 android 模拟器中使用 java.security.KeyPairGenerator 生成密钥时,该过程永远不会完成。我等了 15 分钟,在日志中我唯一能看到的是“生成安全素数。这可能需要很长时间。” 信息。我等了15分钟,然后放弃了。随后我尝试生成长度为 1024 的密钥,它在 7 到 39 秒的范围内完成,这仍然很长但更合理。难道我做错了什么?
这是我的代码:
val keyPair = KeyPairGenerator.getInstance("dh")
keyPair.initialize(2048)
val generatedPair = serverKeyPair.generateKeyPair()
val privateKey = generatedPair.private
val publicKey = generatedPair.public
System.err.println("pu: ${publicKey.encoded}")
System.err.println("pr: ${privateKey.encoded}")
解决方案
推荐阅读
- ios - 对成员“过滤器”swift4 的模糊引用
- swift - 在 Swift 中从 Array 的字典中过滤项目
- php - 没有实体的存储库
- javascript - 如何将 React 方法添加到 React 之外的对象
- postgresql - Postgres & JSONB - Levenshtein 参数
- django - 使用 modelname.filevariable.url 上传文件的 Django 电子邮件附件
- javascript - 如果元素不是直接子元素,则仅使用 CSS 选择具有特定类的元素的第一次出现
- php - 在 Laravel 中将数据推送到队列
- web - IE11 某些选择在桌面上被视为可点击
- makefile - GNU make `foreach`:去掉最后一个列表成员中的逗号?