`

jdk、oracle、js、activeX的base64实现

阅读更多


oeacle


select utl_raw.cast_to_varchar2(utl_encode.base64_encode(rawtohex('888li666dong999bo')))
from dual;




javascript


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title> New Document </title>
<meta name="Generator" content="EditPlus">
<meta name="Author" content="lidongbo">
<meta name="Keywords" content="">
<meta name="Description" content="">
</head>
<script language="JavaScript">
<!--
function wr(str){
	document.write(str);
}
function gl(str){
	return document.getelementbyid(str);
}




    
function Base64() {   
    
    // private property   
    _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";   
    
    // public method for encoding   
    this.encode = function (input) {   
        var output = "";   
        var chr1, chr2, chr3, enc1, enc2, enc3, enc4;   
        var i = 0;   
        input = _utf8_encode(input);   
        while (i < input.length) {   
            chr1 = input.charCodeAt(i++);   
            chr2 = input.charCodeAt(i++);   
            chr3 = input.charCodeAt(i++);   
            enc1 = chr1 >> 2;   
            enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);   
            enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);   
            enc4 = chr3 & 63;   
            if (isNaN(chr2)) {   
                enc3 = enc4 = 64;   
            } else if (isNaN(chr3)) {   
                enc4 = 64;   
            }   
            output = output +   
            _keyStr.charAt(enc1) + _keyStr.charAt(enc2) +   
            _keyStr.charAt(enc3) + _keyStr.charAt(enc4);   
        }   
        return output;   
    }   
    
    // public method for decoding   
    this.decode = function (input) {   
        var output = "";   
        var chr1, chr2, chr3;   
        var enc1, enc2, enc3, enc4;   
        var i = 0;   
        input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");   
        while (i < input.length) {   
            enc1 = _keyStr.indexOf(input.charAt(i++));   
            enc2 = _keyStr.indexOf(input.charAt(i++));   
            enc3 = _keyStr.indexOf(input.charAt(i++));   
            enc4 = _keyStr.indexOf(input.charAt(i++));   
            chr1 = (enc1 << 2) | (enc2 >> 4);   
            chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);   
            chr3 = ((enc3 & 3) << 6) | enc4;   
            output = output + String.fromCharCode(chr1);   
            if (enc3 != 64) {   
                output = output + String.fromCharCode(chr2);   
            }   
            if (enc4 != 64) {   
                output = output + String.fromCharCode(chr3);   
            }   
        }   
        output = _utf8_decode(output);   
        return output;   
    }   
    
    // private method for UTF-8 encoding   
    _utf8_encode = function (string) {   
        string = string.replace(/\r\n/g,"\n");   
        var utftext = "";   
        for (var n = 0; n < string.length; n++) {   
            var c = string.charCodeAt(n);   
            if (c < 128) {   
                utftext += String.fromCharCode(c);   
            } else if((c > 127) && (c < 2048)) {   
                utftext += String.fromCharCode((c >> 6) | 192);   
                utftext += String.fromCharCode((c & 63) | 128);   
            } else {   
                utftext += String.fromCharCode((c >> 12) | 224);   
                utftext += String.fromCharCode(((c >> 6) & 63) | 128);   
                utftext += String.fromCharCode((c & 63) | 128);   
            }   
    
        }   
        return utftext;   
    }   
    
    // private method for UTF-8 decoding   
    _utf8_decode = function (utftext) {   
        var string = "";   
        var i = 0;   
        var c = c1 = c2 = 0;   
        while ( i < utftext.length ) {   
            c = utftext.charCodeAt(i);   
            if (c < 128) {   
                string += String.fromCharCode(c);   
                i++;   
            } else if((c > 191) && (c < 224)) {   
                c2 = utftext.charCodeAt(i+1);   
                string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));   
                i += 2;   
            } else {   
                c2 = utftext.charCodeAt(i+1);   
                c3 = utftext.charCodeAt(i+2);   
                string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));   
                i += 3;   
            }   
        }   
        return string;   
    }   
}  



//-->
</script>





<script type="text/javascript">  
	var b = new Base64();   
	var str = b.encode("888li666dong999bo");   
	wr("base64 encode:" + str+"<br>");   
	str = b.decode(str);   
	wr("base64 decode:" + str);   
</script>  
 
</html>  















java jdk



import java.io.IOException;

public class Base64 {

	 /**  
     * 编码  
     * @param bstr  
     * @return String  
     */  
    public static String encode(byte[] bstr){   
    	return new sun.misc.BASE64Encoder().encode(bstr);   
    }   
  
    /**  
     * 解码  
     * @param str  
     * @return string  
     */  
    public static byte[] decode(String str){   
	    byte[] bt = null;   
	    try {   
	        sun.misc.BASE64Decoder decoder = new sun.misc.BASE64Decoder();   
	        bt = decoder.decodeBuffer( str );   
	    } catch (IOException e) {   
	        e.printStackTrace();   
	    }   
        return bt;   
    }   
  
    /**  
     * @param args  
     */  
    public static void main(String[] args) {   
    	
        String aa = "888li666dong999bo";//"nihao123";   
        aa = encode(aa.getBytes());   
        System.out.println(aa);   
        String str = aa;   
        String str2 = new String(decode(str));   
        System.out.println(str2);   
        
//        ODg4bGk2NjZkb25nOTk5Ym8=
        
    }   

	
}
0
0
分享到:
评论

相关推荐

    如何解决JDK1.6下的Base64

    总的来说,尽管JDK 1.6没有内置Base64支持,但通过引入Apache Commons Codec或Guava库,开发者可以轻松地在旧版本的JDK中实现Base64编码和解码功能。确保正确地将库添加到项目构建路径,遵循库提供的API,即可解决...

    解决JDK1.6下的Base64报错问题

    在资源文件中的`解决JDK1.6下的Base64.jar`可能是包含了一个兼容JDK 1.6的Base64实现的第三方库,你可以直接将这个jar包添加到你的项目类路径中,这样就可以使用其中提供的Base64类而无需修改代码。添加方法通常包括...

    JDK1.6下的Base64解决方式.txt.zip

    总结来说,虽然JDK 1.6本身没有内置Base64支持,但通过引入Apache Commons Codec库,我们可以轻松地在JDK 1.6环境中实现Base64编码和解码。这对于需要处理Base64数据的项目至关重要,尤其是在与旧系统兼容或维护老...

    jdk1.6解决base64

    通过以上步骤,可以在JDK 1.6环境中顺利地实现Base64的编码和解码功能,解决了Sun提供的Base64类不可用的问题。Apache Commons Codec不仅提供了强大的编码解码能力,而且具有很高的稳定性和兼容性,是处理Base64编码...

    解决JDK1.6下的Base64.txt

    在JDK 1.6中,开发者需要依赖第三方库来实现Base64的编码和解码功能。其中,Apache Commons Codec库是一个广泛使用的解决方案。该库提供了`org.apache.commons.codec.binary.Base64`类,包含了`encodeBytes()`和`...

    eclipse中解除jdk的访问限制(以BASE64Encoder/BASE64Decoder为例)

    在实际开发中,我们应该尽量避免使用`sun.misc`包,因为它包含的类和方法是Oracle JDK的非标准实现,可能在不同的JDK供应商或版本中不可用。使用标准Java API或第三方库能确保代码的稳定性和可移植性。 此外,注意...

    Base64与byte[]相互转换

    下面提供了一个完整的示例代码,用于演示如何在Java中实现Base64与byte[]之间的转换以及去除Base64中的换行符: ```java import java.util.Base64; import java.nio.charset.StandardCharsets; public class Base...

    sun.misc.BASE64Decoder(Android Base64Jar包以及Java源代码)

    sun.misc.BASE64Decoder 其中包括 Android Base64Jar包 以及Java源代码 sun.misc.BASE64Decoder 其中包括 Android Base64Jar包 以及Java源代码 sun.misc.BASE64Decoder 其中包括 Android Base64Jar包 以及...

    sun.misc.BASE64Decoder和sun.misc.BASE64Encoder不可用已解决

    冲浪后发现JDK中的lib\tools.jar和JRE中的lib\rt.jar已从Java SE 9中删除,也就是1.8版本后的jdk已经不再支持sun.misc.BASE64Decoder和sun.misc.BASE64Encoder。 这些JAR中可用的类和资源现在以文件中的内部格式存储...

    2022年Oracle最新发布jdk1.8(Windows x64 .exe)

    在2022年的更新中,Oracle发布了适用于Windows 64位操作系统的JDK 1.8的新版本,即"jdk1.8(Windows x64 .exe)"。这个版本的发布对于Windows平台上的开发者来说是一个重要的更新,因为它包含了性能优化、安全修复和...

    Java JDK1.7对字符串的BASE64编码解码方法

    在Java JDK1.7中,字符串的BASE64编码解码可以使用sun.misc包下的BASE64Encoder和BASE64Decoder类来实现。 首先, lets 看一下BASE64编码的原理。BASE64编码是一种将二进制数据转换为ASCII字符串的方法,使用64个可...

    jdk-7u80-linux-x64.tar.gz解压,ORACLE JDK1.7 linux x64.zip

    Oracle JDK是Java Development Kit的官方实现,由Oracle公司提供,它包含了Java虚拟机(JVM)、编译器、调试器和其他工具,为开发者提供了完整的Java环境。在Linux系统上,JDK通常以压缩包的形式分发,例如"jdk-7u80...

    JDK和ORACLE JDK冲突修改环境变量

    ### JDK与Oracle JDK冲突及其环境变量调整方法 在IT领域,特别是软件开发过程中,经常会遇到不同版本或类型的Java运行环境(JRE)和Java开发工具包(JDK)之间的兼容性问题。本文将针对“JDK和Oracle JDK冲突修改...

    图片BASE64加密保存到数据库Blob类型中(放入数据库,并取出生成图片)

    7. **运行环境**:虽然未明确指出,但执行这个Demo可能需要一个支持JDBC连接的数据库(如MySQL、Oracle等),以及Java开发环境(如JDK)和相关的库,如数据库驱动。 8. **应用场景**:这种技术常见于Web应用中,...

    base64用到的jar包下载

    1. **JDK自带的Base64实现** 自Java 8开始,JDK提供了内置的Base64支持,位于`java.util.Base64`类中。这个类提供了一组静态方法,可以方便地进行Base64编码和解码。例如,你可以使用`Base64.getEncoder()....

    sun base64解码实现

    标题中的“sun base64解码实现”是指在Java编程语言中使用内置的Sun JDK提供的Base64解码功能。Base64是一种用于将任意二进制数据编码为ASCII字符的编码方式,常用于在网络上传输包含二进制的数据,如图片、证书等。...

    jdk7_jdk8-oracle19C所需驱动.zip

    在本案例中,"jdk7_jdk8-oracle19C所需驱动.zip"是一个压缩包,包含了适用于Java 7和Java 8的Oracle JDBC驱动,用于连接到Oracle 19C数据库。 Oracle JDBC驱动,也被称为Oracle Thin Driver或ojdbc驱动,是Oracle...

    java base64的jar包

    Java Base64是一个用于处理Base64编码的库,它为Java开发者提供了便捷的方式来编码和解码Base64数据。Base64是一种在网络上传输二进制数据时常用的编码方式,因为HTTP、电子邮件等协议主要处理ASCII字符,而Base64...

    sun.misc.BASE64Decoder

    Java 8及以后的版本提供了`java.util.Base64`类,它是官方推荐的Base64编码和解码的标准实现。`java.util.Base64.Decoder`接口提供了与`sun.misc.BASE64Decoder`类似的功能,可以用来解码Base64编码的字符串。例如,...

    jdk8u121-arm64(aarch64)

    jdk8u121-arm64(aarch64) jdk8u121-arm64(aarch64)jdk8u121-arm64(aarch64)jdk8u121-arm64(aarch64)

Global site tag (gtag.js) - Google Analytics