javabase64源碼
A. Base64 編碼和解碼 java=》C#
io流部分好像有點區別
其他部分貌似不用改了
B. 求java加密源代碼(MD5,base64)
import java.security.*;
import javax.crypto.*;
/**
* 本例解釋如何利用DES私鑰加密演算法加解密
*
* @author Devon
* @version 1.0 04/03/10
*/
public class SingleKeyExample {
public static void main(String[] args) {
try {
String algorithm = "DES"; //定義加密演算法,可用 DES,DESede,Blowfish
String message = "Hello World. 這是待加密的信息";
// 生成個DES密鑰
KeyGenerator keyGenerator = KeyGenerator.getInstance(algorithm);
keyGenerator.init(56); //選擇DES演算法,密鑰長度必須為56位
Key key = keyGenerator.generateKey(); //生成密鑰
// 生成Cipher對象
Cipher cipher = Cipher.getInstance("DES");
//用密鑰加密明文(message),生成密文(cipherText)
cipher.init(Cipher.ENCRYPT_MODE, key); //操作模式為加密(Cipher.ENCRYPT_MODE),key為密鑰
byte[] cipherText = cipher.doFinal(message.getBytes()); //得到加密後的位元組數組
System.out.println("加密後的信息: " + new String(cipherText));
//用密鑰加密明文(plainText),生成密文(cipherByte)
cipher.init(Cipher.DECRYPT_MODE, key); //操作模式為解密,key為密鑰
byte[] sourceText = cipher.doFinal(cipherText); //獲得解密後位元組數組
System.out.println("解密後的信息: " + new String(sourceText));
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
/**
* @author Devon
*/
import java.security.*;
import java.security.spec.*;
import javax.crypto.*;
public class PairKeyExample {
public static void main(String argv[]) {
try {
String algorithm = "RSA"; //定義加密演算法,可用 DES,DESede,Blowfish
String message = "張三,你好,我是李四";
//產生張三的密鑰對(keyPairZhang)
KeyPairGenerator keyGeneratorZhang =
KeyPairGenerator.getInstance(algorithm); //指定採用的演算法
keyGeneratorZhang.initialize(1024); //指定密鑰長度為1024位
KeyPair keyPairZhang = keyGeneratorZhang.generateKeyPair(); //產生密鑰對
System.out.println("生成張三的公鑰對");
// 張三生成公鑰(publicKeyZhang)並發送給李四,這里發送的是公鑰的數組位元組
byte[] publicKeyZhangEncode = keyPairZhang.getPublic().getEncoded();
//通過網路或磁碟等方式,把公鑰編碼傳送給李四
//李四接收到張三編碼後的公鑰,將其解碼
KeyFactory keyFacoryLi = KeyFactory.getInstance(algorithm); //得到KeyFactory對象
X509EncodedKeySpec x509KeySpec =
new X509EncodedKeySpec(publicKeyZhangEncode); //公鑰採用X.509編碼
PublicKey publicKeyZhang = keyFacoryLi.generatePublic(x509KeySpec); //將公鑰的KeySpec對象轉換為公鑰
System.out.println("李四成功解碼,得到張三的公鑰");
//李四用張三的公鑰加密信息,並發送給李四
Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding"); //得到Cipher對象
cipher.init(Cipher.ENCRYPT_MODE, publicKeyZhang); //用張三的公鑰初始化Cipher對象
byte[] cipherMessage = cipher.doFinal(message.getBytes()); //得到加密信息
System.out.println("加密後信息:" + new String(cipherMessage));
System.out.println("加密完成,發送給李四...");
//張三用自己的私鑰解密從李四處收到的信息
cipher.init(Cipher.DECRYPT_MODE, keyPairZhang.getPrivate()); //張三用其私鑰初始化Cipher對象
byte[] originalMessage = cipher.doFinal(cipherMessage); //得到解密後信息
System.out.println("張三收到信息,解密後為:" + new String(originalMessage));
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
C. 在Java中如何進行BASE64編碼和解碼
importsun.misc.BASE64Encoder;
importsun.misc.BASE64Decoder;
//將s進行BASE64編碼
publicstaticStringgetBASE64(Strings){
if(s==null)returnnull;
return(newsun.misc.BASE64Encoder()).encode(s.getBytes());
}
//將BASE64編碼的字元串s進行解碼
(Strings){
if(s==null)returnnull;
BASE64Decoderdecoder=newBASE64Decoder();
try{
byte[]b=decoder.decodeBuffer(s);
returnnewString(b);
}catch(Exceptione){
returnnull;
}
}
D. 從文件中讀取數據並編碼成base64 java
代碼如下:
importjava.io.FileInputStream;
importjava.io.IOException;
importjava.util.Arrays;
importjava.util.Base64;
importjava.util.Base64.Encoder;
publicclassApp{
publicstaticvoidmain(String[]args)throwsIOException{
Encoderencoder=Base64.getEncoder();
byte[]buffer=newbyte[1024];
intlen=0;
StringBuilderbuilder=newStringBuilder();
try(FileInputStreaminputStream=newFileInputStream("d:\temp\abc.txt")){
while((len=inputStream.read(buffer))!=-1){
byte[]src=Arrays.OfRange(buffer,0,len);
builder.append(encoder.encodeToString(src));
}
}
System.out.println(builder.toString());
}
}
E. 求URL-SAFE-BASE64加密解密的java代碼
base64 編碼後,有幾個是不能url safe。所以自己替換一下。收到後,再替換回來
F. Java Base64編碼 將十進制的數字進行Base64編碼怎麼做
jdk 1.6 有內置的演算法,,,,,,,,,,
apache有開源項目commons-codec中包括有演算法 ,,,,,,,,,
網路也能找到全JAVA源碼
G. Java Base64加碼解碼 Base64.encodeBase64 ( ) 和 new BASE64Enccoder( ).encode( )區別
Base64.encodeBase64 ( ) 可以處理換行符,
new BASE64Enccoder( ).encode( )需要單獨處理換行符。
在linux/windows下,推薦使用第一種,不用自己單獨處理換行。
H. java中的BASE64編碼有已經實現好的開源項目么
多的很 。。。
org.apache.hadoop.hbase.util.Base64
com.sun.jersey.core.util.Base64
org.apache.commons.codec.binary.Base64
com.sun.jersey.core.util.Base64
I. JAVA BASE64編碼
BASE64編碼本來就是把二進制數據變為字元串,即將byte[]變為String.
你看的例子裡面把字元串編碼,也是先吧字元串編程byte[]再去編碼,因此你只要把文件中的數據都讀到一個byte[]中,然後調用哪個方法就可以了。
J. java base64解密亂碼問題 代碼如下:
private String getPictureString() {
String upload = "";
try {
FileInputStream in = new FileInputStream(fileName);
byte[] ba = new byte[in.available()];
in.read(ba);
in.close();
upload = new String(android.util.Base64.encode(ba,
android.util.Base64.DEFAULT));
} catch (FileNotFoundException e) {
LogUtil.e(e.getMessage(), e);
} catch (IOException e) {
LogUtil.e(e.getMessage(), e);
}
return upload;
}
這個是加密
解密就是
encode換成decode
upload=newString(android.util.Base64.decode(ba,
android.util.Base64.DEFAULT));