Files
Facilitor/APPL/Shared/encoding.inc
Jos Groot Lipman 2976bebc79 AAIT#35643 OTP/2 factor authentication
svn path=/Website/trunk/; revision=28519
2016-03-17 14:05:20 +00:00

63 lines
1.5 KiB
C++

<%
/*
$Revision$
$Id$
File: encoding.inc
Description: Handige functie
Parameters:
Context:
Note:
*/
function hex_to_binary(seed)
{
var binary = new Array();
for (var i=0; i<seed.length/2; i++)
{
var h = seed.substr(i*2, 2);
binary[i] = parseInt(h,16);
}
return binary;
}
var base32_chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"
function binary_to_base32(input) {
var ret = new Array();
var ret_len = 0;
var i = 0;
var unpadded_length = input.length;
while (input.length % 5) {
input[input.length] = 0;
}
for(i=0; i<input.length; i+=5) {
ret += base32_chars.charAt((input[i] >> 3));
ret += base32_chars.charAt(((input[i] & 0x07) << 2) | ((input[i+1] & 0xc0) >> 6));
if (i+1 >= unpadded_length) {
ret += "======"
break;
}
ret += base32_chars.charAt(((input[i+1] & 0x3e) >> 1));
ret += base32_chars.charAt(((input[i+1] & 0x01) << 4) | ((input[i+2] & 0xf0) >> 4));
if (i+2 >= unpadded_length) {
ret += "===="
break;
}
ret += base32_chars.charAt(((input[i+2] & 0x0f) << 1) | ((input[i+3] & 0x80) >> 7));
if (i+3 >= unpadded_length) {
ret += "==="
break;
}
ret += base32_chars.charAt(((input[i+3] & 0x7c) >> 2));
ret += base32_chars.charAt(((input[i+3] & 0x03) << 3) | ((input[i+4] & 0xe0) >> 5));
if (i+4 >= unpadded_length) {
ret += "="
break;
}
ret += base32_chars.charAt(((input[i+4] & 0x1f)));
}
return ret;
}
%>