jr_T 2019-03-04 15:58 采纳率: 0%
浏览 1099
已结题

Android 使用KeyGenParameterSpec生密钥指定了keySize是1024,但生出的公钥是2048?

问题描述:
在Android设备上,我使用了KeyStore进行生密钥,
KeyGenParameterSpec .setKeySize(1024),在很多机型上都是没有问题的,
但客户反应在**魅族M5**使用我方产品时候,进行不能通过,
查询后台日志信息,是公钥过长,超出了SQL的字段长度.
明明我给定的是1024长度啊,为什么会生出2048的密钥呢?

代码模块:

   KeyStore keyStore = KeyStore.getInstance("AndroidKeyStore");
            keyStore.load(null, null);

            //生密钥对
            //用keyName+keyPwd 作为秘钥别名,因为6.0的设备,无法设置密码,通过此方法,调用的时候可以验证密码是否正确
            KeyPairGenerator kpg = KeyPairGenerator.getInstance(KeyProperties.KEY_ALGORITHM_RSA, "AndroidKeyStore");
            KeyGenParameterSpec spec = new KeyGenParameterSpec.Builder(encKeyName, KeyProperties.PURPOSE_SIGN|KeyProperties.PURPOSE_DECRYPT)
                    .setKeySize(1024)
                    .setDigests(KeyProperties.DIGEST_SHA256, KeyProperties.DIGEST_SHA512)
                    .setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_RSA_PKCS1)
                    .setSignaturePaddings(KeyProperties.SIGNATURE_PADDING_RSA_PKCS1)
                    .setUserAuthenticationRequired(useFinger)
                    .build();
            kpg.initialize(spec);
            KeyPair keyPair = kpg.generateKeyPair();
            PublicKey pubKey = keyPair.getPublic();
            PrivateKey priKey = keyPair.getPrivate();

上面是代码片段

  • 写回答

1条回答

  • devmiao 2019-03-04 23:52
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)
  • ¥20 matlab yalmip kkt 双层优化问题
  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
  • ¥88 实在没有想法,需要个思路
  • ¥15 MATLAB报错输入参数太多