在c#中编码base64公钥并在java中解码base64

问题描述 投票:0回答:1

在C#中使用base64编码公钥的正确方法是什么,保存到文件,以及在java中读取该文件后重新计算密钥。

这在C#中

File.WriteAllText(System.Convert.ToBase64String(certificate.GetPublicKey()))

在Java中,我读了所有字节,然后我尝试了这个:

PublicKey pubKey = KeyFactory.getInstance("RSA").generatePublic(new X509EncodedKeySpec(Base64.getDecoder().decode(bytesFromFile)))

它抛出

无效的密钥格式

java c# base64 public-key
1个回答
0
投票

用C#编码:

@using System;
@using System.Text;

string password = "yourpassword";
 var passwordBytes = Encoding.UTF8.GetBytes(password);
 string encodedPassword = Convert.ToBase64String(passwordBytes);
 //Debug.Write("csEncodedPassword: "+csEncodedPassword);

用Java解码:

import org.apache.commons.codec.binary.Base64;
import org.apache.commons.codec.binary.StringUtils;

String decodedPass = java.net.URLDecoder.decode(csEncodedPassword,StandardCharsets.UTF_8.name());
String decoded64pass= StringUtils.newStringUtf8(Base64.decodeBase64(decodedPass));
© www.soinside.com 2019 - 2024. All rights reserved.