java私钥加密——SHA256withRSA

因OA系统需要对exchange的邮箱服务器做单点登录,开发商(微软中国代理商)提供了一套.Net开发的单点登录方案。平时公司为了节省成本,这种单点登录的工作一般都是我们自己开发完成,而我这边OA系统(另一家开发商提供的)是Java开发的,虽然加密这类的标准是一样的,可是没有参考代码,只能盲敲调试,且OA系统还得在jsp中写Java代码,实在是有点折磨(全程nodepad++写代码,编译错误只能在上传到服务器运行时才能发现)。

以下是开发商提供的.Net加密代码:

using System;
using System.Security.Cryptography;

namespace SignWithRSASHA256
{
    public partial class TestForm : Form
    {
        public TestForm()
        {
            InitializeComponent();
        }

        private void signTest(object sender, EventArgs e)
        {
            // 123是私钥文件的密码
            X509Certificate2 cert = new X509Certificate2(@"cert\\ifcloud.pfx", "123");
            byte[] srcDataBuf = System.Text.Encoding.UTF8.GetBytes("待加密的字符串");
            RSACryptoServiceProvider RSA = (RSACryptoServiceProvider)cert.PrivateKey;
            byte[] signedDataBuf = RSA.SignData(srcDataBuf, HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1);

    	    // base64SrcData
            Console.WriteLine(HttpUtility.UrlEncode(Convert.ToBase64String(srcDataBuf)));
    	    // signedData
            Console.WriteLine(HttpUtility.UrlEncode(Convert.ToBase64String(signedDataBuf)));
        }
    }
}

我要做的事情就是用Java给它实现一下。

看着这段代码不多,感觉用Java写应该也不难。但主要是对加密这块了解得太少,而且也怕1.6的jdk会有不支持的情况。

抱着学习的心态,我先去微软官方的文档查了下这段代码里面涉及到的几个类和它们的方法。

X509Certificate2 类 (System.Security.Cryptography.X509Certificates) | Microsoft Docs

X509Certificate2.PrivateKey 属性 (System.Security.Cryptography.X509Certificates) | Microsoft Docs

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值