我们正在尝试使用直接在 MS SQL Server 中创建的 RSA 2048 公钥加密文件。这些公钥可以通过 sys.asymmetric_keys 视图查询。我们真的没有访问数据库的权限。公钥存储为 VARBINARY(max) 字段。看起来像这样:
0x0602000000240000525341310008000001000100D1D13925EC404DA171AE1EA9EFCFCB9849FA
4678DB26D0EEDD36D440D5EC3781A7EE3E05654EC6830B79E5E745F24A0C35B21C0089D19254A7
A12B65EA018116482190B2D4DDADB2CD7B0B79F0E08DF97C4E4569D181BC3C34D350AEF821CCA0
819E4AA336449A4B022F75FC6C382C4BA60CBBBA03461D2B6C7BF7CECE48D52A6B186C57226297
A09DD5D730ECA29C41796C1C961AA7763D8F7D0094F310D29AEA8D5F526B0B99FEC1841B5462A0
75648CADBB32C51A43EAC76E8D02B644996368890A762AEF80439B4CD92DA7D38417601918B104
B1DDEE846DF09E944B562A0828285A6EB362D19E2BDD79DBCE6B86D9F60D264C8EF4F4CCCAEB6B
89F410AF
该公钥的长度为 554 位。它似乎是一个十六进制数。我不知道这个密钥是如何编码的。我知道我们需要一个 KeySpec 来实例化一个公钥。
PublicKey publicKey = KeyFactory.getInstance("RSA").generatePublic((KeySpec) new SomeKeySpec(bytes);
我不知道如何从中创建关键规范。