如何用JavaScript编写base32_decode?

问题描述

| 我正在尝试创建等效于PHP的解压缩文件。我已经注意到该项目PHPJS没有它。我需要它来实现base32_encode和base32_decode(使用Crockford的字母\'0123456789ABCDEFGHJKMNPQRSTVWXYZ \')。 我在任何地方都找不到它,从它的对等物PHPJS的pack函数来看,我怀疑我的版本是否会完整并且很快会发生错误。     

解决方法

        您可以修改JavaScript Base64函数以使用较小的字母。     ,        那这个呢?看来它将带您到达一半。 http://forthescience.org/blog/2010/11/30/base32-encoding-in-javascript/     ,        原来有人已经完成了编码和解码功能 https://github.com/agnoster/base32-js/blob/master/lib/base32.js     ,        
base32tohex = (function() {
    var dec2hex = function(s) {
        return (s < 15.5 ? \"0\" : \"\") + Math.round(s).toString(16)
    },hex2dec = function(s) {
        return parseInt(s,16)
    },base32tohex = function(base32) {
        for (var base32chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567\",bits = \"\",hex = \"\",i = 0; i < base32.length; i++) {
            var val = base32chars.indexOf(base32.charAt(i).toUpperCase());
            bits += leftpad(val.toString(2),5,\"0\")
        }
        for (i = 0; i + 4 <= bits.length; i += 4) {
            var chunk = bits.substr(i,4);
            hex += parseInt(chunk,2).toString(16)
        }
        return hex
    },leftpad = function(str,len,pad) {
        return len + 1 >= str.length && (str = new Array(len + 1 - str.length).join(pad) + str),str
    };
    return base32tohex;
}
)()
    

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...