非对称加密RSA文本和Excel文件加密练习

package com;

import cn.hutool.core.codec.Base64;
import cn.hutool.core.io.FileUtil;
import cn.hutool.crypto.asymmetric.KeyType;
import cn.hutool.crypto.asymmetric.RSA;

public class RSATest {
    public static void main(String[] args) {
        //公钥加密
//        RSA rsa = new RSA();
//        System.out.println("getPrivateKeyBase64: "+rsa.getPrivateKeyBase64());
//        System.out.println("getPublicKeyBase64: "+rsa.getPublicKeyBase64());
//        byte [] encrypt=rsa.encrypt("Dalian Explorers", KeyType.PublicKey);
//        System.out.println(Base64.encode(encrypt));


        //私钥解密
//        String PRIVATE_KEY ="MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAJmVD9gSyyshLxNjJwwhm4l9sAMqeFqyUm0yjNBymzh8DXXCFqoSUgE9pFVXcUcI4MPfJYygvknUbufx9wbwVgUgMHy1QIVmQAGy3xuKKVNscGFI4rfhKtE3Pb3MmBXv0tPs2LLL8FywG6lHrPnZUWOy4TMYXzpPUxqV1xn4pLf/AgMBAAECgYBvdXicLXd5A4owncLW0QUaETdN9OKHn+amDQuYs7PmmFEEZykfoFAXSm8a6GzzSoQkYqvTlUzENAGRH09Rn9YsmmLuhekyD/7EiKVBvHqBrzF0Fu2OtW0j/+hxfd0OxO4xeX68ItT/5Y4oa/lhuiniXD5rZfa8wJ9LlvDCUihwAQJBAOnq4TNs0433HSc4JOTl/lXADe7NTO5N5WoO0ZD89icPcm2mB4HuD65bQVYVWDxv+vj6QRiN3/P3UKuu2IPg1AECQQCoFLVZX7xCRXz6x4OzDTHg1i3HxOM1dJc/lFeUJ7BTFkHyVo+t8bVLTs3gNUNmoKUHyu/do3VWTz8ZnigklYv/AkEAlZ2UGU5cKguK7BDvGDE7ciF7R+iscigEusdrp28FCorIx/VQC/z2rrDTo3nXjCCbyDBY/pmQSv0+7fDRr9hYAQJAJ08IholkPt9/dir4+wQH+Tw94q2CMbs9sCniPYz2qMfYznM+EQEpVB5u+ZObWsIRNnxYkq4qv++yoywg2UV8QwJAWoN7mZhzkp2yjrbezaXNgBQW45TDzS6TLSLDYfMQZ5ZfjqGuBB97lo4axu6O57Faa9b+bW9BBFE0oebUulA7ew==";
//        String a ="KVwFlVczgXz97zC1qIGti4I6mZfRLnrPDc8PSQCxkrCt3nY75SyADqcnECddJ+wdTPg4yPUVFQwV1fRVUY8OJLknS1QaHh+Gphz4CiTjtNETFJEngm3Je7aBlZmx8jdDlSpRqw7Mwiw18KtbFrsCtQXuILBcFCEYz4cSVPLGErw=";
//        RSA rsa = new RSA(PRIVATE_KEY, null);
//        byte[] decrypt = rsa.decrypt(Base64.decode(a), KeyType.PrivateKey);
//        System.out.println(new String(decrypt));


        //私钥加密
//        RSA rsa = new RSA();
//        System.out.println("getPrivateKeyBase64: "+rsa.getPrivateKeyBase64());
//        System.out.println("getPublicKeyBase64: "+rsa.getPublicKeyBase64());
//        byte [] encrypt=rsa.encrypt("Dalian Explorers", KeyType.PrivateKey);
//        System.out.println(Base64.encode(encrypt));


        //公钥解密

        String PUB_KEY ="MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDE/cAp9R/JWzUZxRkRsTBfO7ciIAchtEPte3EJ250QuSjJkpOhHMZYPqShA68iaK3RcLfeuHASLIwjgwf88oNwM2qy3GKjo4tIRiE1EnwTFl1n2chatTn1CUfOIvhXIlTpstfr1bdCrNzGcz84w+xJyY3G4cNwXRAQfX80s5btlwIDAQAB";
        String a ="p47n9oijcNXbUF1+fH6VtifiO8+zLBibeOUJfjLUVyMsT95D6fu3ofIVj7NQSHBAVwMmWZeMZUj3aHQYVloktLzxu7CccVLuPJXAqELIyB5thcasg0Vlrry1lcBLX3hHKppHp5aW+C5vx9+vZXugXgJex8zYrxIOOzPiF+Zg5qM=";
        RSA rsa = new RSA(null, PUB_KEY);
        long start=System.currentTimeMillis();
        byte[] decrypt = rsa.decrypt(Base64.decode(a), KeyType.PublicKey);
        System.out.println(new String(decrypt));
        long end=System.currentTimeMillis();
        long time_seconds=(end-start);
        System.out.println("耗时: "+time_seconds+" 毫秒");
        //公钥加密Excel文件
//        RSA rsa = new RSA();
//        System.out.println("getPrivateKeyBase64: "+rsa.getPrivateKeyBase64());
//        System.out.println("getPublicKeyBase64: "+rsa.getPublicKeyBase64());
//        ;
//        byte [] encrypt=rsa.encrypt(FileUtil.readBytes("C:\\Users\\li_yaohua_ext\\Desktop\\July.xlsx"), KeyType.PublicKey);
//        FileUtil.writeBytes(encrypt,"C:\\Users\\li_yaohua_ext\\Desktop\\July_encrypt.xlsx");

        //私钥解密Excel
//        String PRIVATE_KEY ="MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAIRGfJI25hlU2v2Yoq9BSPCLu/F1nvOYXRNBxhcAKf4OFNHyAO744CLBxaHqHvYVSyCMgOOJQ8YT+td5SfMMAWrZfi2xsevgo03v1uHlalITi68PYYSI1+0d74ScCIlcmnnb0Be0R97gtoCzLw4s9G+sV2aEb49bONCbRhQcuw3DAgMBAAECgYAGN+4ZTZ1pqXSWIXvcc1xDer4+LsJnP01430m5wRc4S18tM4xZr7eRyrxIzWHhPcUHZbOVftmB0WSkhp40X+cdFjf+jkd7C91zq/spHIx1IiKhD9dNdOhOlDQbIrKnytSPlhElJrfYKkocVKsBC1zqAm0lPwynqPwrnUaD9wi/AQJBAN7EL2ZhCxCLYt0tF1310PKZFWLpy9I9rquLuVGqO8FgnleXBsx9aNVRjCWzUW2Wzgkn/xp0XI//ws1cYxwxE4ECQQCYAkzf4K4EJj+KE85gGzWM+/ka3SZKmvOKWIx9pvdRlDmFqGNs0XNKmlSffG0Ip4zrdeQy5p3Crb7U9vdAIHNDAkEAlDQvWMx9QP+KwZ0rK57L6WqBOPJUYMYavBRUMYmxAaFXFuzqYAebRDhhpf9b0C4BW0QZyy7ZGhBNOLUbVvkrgQJANnz8mXOsbQhY1mHrJEAcngDkdmC3jR6mFf1PvurO1ItRYzvNCAC8Vw2jL9gmLWgB95U2y5gnDNXDBgvQ7Ue0iQJBANc1Ajn3QFbCbGijbeDxXgMrbnMg1ozTITpE5AGxWWlDF8gP1Ft43qq2XL8/AWuNk7HAb1j+mhvMKauEewiaKTU=";
//        RSA rsa = new RSA(PRIVATE_KEY, null);
//        long start=System.currentTimeMillis();
//        byte[] decrypt = rsa.decrypt(FileUtil.readBytes("C:\\Users\\li_yaohua_ext\\Desktop\\July_encrypt.xlsx"), KeyType.PrivateKey);
//        FileUtil.writeBytes(decrypt,"C:\\Users\\li_yaohua_ext\\Desktop\\July_decrypt.xlsx");
//        long end=System.currentTimeMillis();
//        long time_seconds=(end-start)/1000;
//        System.out.println(time_seconds);


    }
}

Hutools 非对称加密RSA文本和Excel文件加密练习

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值