diff options
Diffstat (limited to 'src/utils.ts')
-rw-r--r-- | src/utils.ts | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/utils.ts b/src/utils.ts new file mode 100644 index 0000000..40e985e --- /dev/null +++ b/src/utils.ts @@ -0,0 +1,40 @@ +export class Utils { + static createKey(keyLength: number){ + let keyspace: String = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; + let text = ''; + let index; + for (let i = 0; i < keyLength; i++) + { + index = Math.floor(Math.random() * keyspace.length); + text += keyspace.charAt(index); + } + return text; + } + + static toUTF8Array(str) { + let utf8 = []; + for (var i=0; i < str.length; i++) { + let charcode = str.charCodeAt(i); + if (charcode < 0x80) utf8.push(charcode); + else if (charcode < 0x800) { + utf8.push(0xc0 | (charcode >> 6), + 0x80 | (charcode & 0x3f)); + } + else if (charcode < 0xd800 || charcode >= 0xe000) { + utf8.push(0xe0 | (charcode >> 12), + 0x80 | ((charcode>>6) & 0x3f), + 0x80 | (charcode & 0x3f)); + } + // surrogate pair + else { + i++; + charcode = ((charcode&0x3ff)<<10)|(str.charCodeAt(i)&0x3ff) + utf8.push(0xf0 | (charcode >>18), + 0x80 | ((charcode>>12) & 0x3f), + 0x80 | ((charcode>>6) & 0x3f), + 0x80 | (charcode & 0x3f)); + } + } + return utf8; + } +}
\ No newline at end of file |