Advertisement
Guest User

Untitled

a guest
Mar 24th, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.29 KB | None | 0 0
  1. export enum GeneratorType {
  2. All = 0,
  3. NumsAndLetters = 1,
  4. NumsAndUppercase = 2,
  5. NumsAndLowercase = 3,
  6. UppercaseAndLowercase = 4,
  7. Lowercase = 5,
  8. Uppercase = 6,
  9. Nums = 7,
  10. }
  11.  
  12. export class Generator {
  13.  
  14. private static charsForKey = [
  15. '-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz',
  16. '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',
  17. '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ',
  18. '0123456789abcdefghijklmnopqrstuvwxyz',
  19. 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',
  20. 'abcdefghijklmnopqrstuvwxyz',
  21. 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
  22. '0123456789'
  23. ]
  24.  
  25.  
  26. // MARK: Generate unique keys (Alphanumeric)
  27. static key(len: number, type: GeneratorType): String {
  28.  
  29. let str = ""
  30. let now = new Date().getTime()
  31. let tsc = new Array(8)
  32.  
  33. for (i = 0; i < len - 8; i++) {
  34. str += Generator.charsForKey[type].charAt(Math.floor(Math.random() * Generator.charsForKey[type].length))
  35. }
  36.  
  37. for (var i = 7; i >= 0; i--) {
  38. tsc[i] = Generator.charsForKey[type].charAt(now % Generator.charsForKey[type].length)
  39. now = Math.floor(now / Generator.charsForKey[type].length)
  40. }
  41.  
  42. str += tsc.join('')
  43. return str
  44. }
  45.  
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement