日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

已知公钥pubkey,进行RSA公钥加密

發布時間:2024/1/1 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 已知公钥pubkey,进行RSA公钥加密 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?RSA加密解密的例子非常多,但是已知pubkey,然后進行RSA公鑰加密的很少,原理都差不多,

下面就是個簡單的例子:

首先拿到pubkey,拿到是字符串的形式,需要轉一下,然后進行加密,返回的是已經加密好的字符串。

import java.io.ByteArrayOutputStream; import java.security.KeyFactory; import java.security.PublicKey; import java.security.spec.X509EncodedKeySpec;import javax.crypto.Cipher;import org.apache.commons.codec.binary.Base64; import com.epoint.core.utils.config.ConfigUtil;public class RsaUtils {/*** RSA最大加密明文大小*/private static final int MAX_ENCRYPT_BLOCK = 117;//已拿到的公鑰串private static String PUBLICKEY = "已知的公鑰串";/*** * 根據公鑰加密* @param data* @return* @throws Exception * @exception/throws [違例類型] [違例說明]* @see [類、類#方法、類#成員]*/public static String encrypt(String data) throws Exception{byte[] decode = Base64.decodeBase64(PUBLICKEY);PublicKey pubKey = KeyFactory.getInstance("RSA").generatePublic(new X509EncodedKeySpec(decode));//RSA加密Cipher cipher = Cipher.getInstance("RSA");cipher.init(Cipher.ENCRYPT_MODE, pubKey);byte[] dataByte = data.getBytes("UTF-8");int inputLen = dataByte.length;ByteArrayOutputStream out= new ByteArrayOutputStream();int offSet = 0;byte[] cache;int i = 0;// 對數據分段加密while (inputLen - offSet > 0) {if (inputLen - offSet > MAX_ENCRYPT_BLOCK) {cache = cipher.doFinal(dataByte, offSet, MAX_ENCRYPT_BLOCK);} else {cache = cipher.doFinal(dataByte, offSet, inputLen - offSet);}out.write(cache, 0, cache.length);i++;offSet = i * MAX_ENCRYPT_BLOCK;}byte[] encryptedData = out.toByteArray();out.close();String outStr = Base64.encodeBase64String(encryptedData);return outStr;} }

?

總結

以上是生活随笔為你收集整理的已知公钥pubkey,进行RSA公钥加密的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。