2018-05-25 プライバシーポリシーを改訂いたしました。

rfc4648あたりのBase32をデコードするシンプルなコード。パブリックドメインです。デコードできるべきBase32の文字列はちゃんとデコードできるはず。エラーを出すべき場面では無視するので、何かよくわからんものが出てくると思います。 適当にggってもやたら複雑な実装しか出てこなかったのでめんどくさくなって自分で書いた。

形式
JavaScript
投稿日時
2018-03-04 01:56
公開期間
無期限
  1. function debase32(b){
  2. let ans = "";
  3. let nx = 0;
  4. let nc = 0;
  5. for(let i = 0; i < b.length; i++){
  6. let c = b.charCodeAt(i);
  7. let n = 0;
  8. if(0x41 <= c && c <= 0x5a){ //A-Z
  9. n = c - 0x41;
  10. }else if(0x61 <= c && c <= 0x7a){ //a-z
  11. n = c - 0x61;
  12. }else if(0x32 <= c && c <= 0x37){ //2-7
  13. n = c - 0x32 + 26;
  14. }else if(c == 0x30){ //0
  15. n = 14;
  16. }else if(c == 0x31){ //1
  17. n = 8;
  18. }else{
  19. continue;
  20. }
  21. n |= nx << 5;
  22. nx = n & 0xff;
  23. if(nc * 5 % 8 >= 3){
  24. n >>= nc * 5 % 8 - 3;
  25. ans += String.fromCharCode(n & 0xff);
  26. }
  27. nc++;
  28. if(nc >= 8){
  29. nc = 0;
  30. }
  31. }
  32. return ans;
  33. }
ダウンロード 印刷用表示

このコピペの URL

JavaScript での埋め込み

iframe での埋め込み

元のテキスト