des.js 957 B

12345678910111213141516171819202122232425262728293031323334353637
  1. import cryptoJs from "crypto-js";
  2. export const sha1_to_base64 = sha1 => {
  3. let digits =
  4. "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
  5. let base64_rep = "";
  6. let ascv = null;
  7. let bit_arr = 0;
  8. let bit_num = 0;
  9. for (let n = 0; n < sha1.length; ++n) {
  10. if (sha1[n] >= "A" && sha1[n] <= "Z") {
  11. ascv = sha1.charCodeAt(n) - 55;
  12. } else if (sha1[n] >= "a" && sha1[n] <= "z") {
  13. ascv = sha1.charCodeAt(n) - 87;
  14. } else {
  15. ascv = sha1.charCodeAt(n) - 48;
  16. }
  17. bit_arr = (bit_arr << 4) | ascv;
  18. bit_num += 4;
  19. if (bit_num >= 6) {
  20. bit_num -= 6;
  21. base64_rep += digits[bit_arr >>> bit_num];
  22. bit_arr &= ~(-1 << bit_num);
  23. }
  24. }
  25. if (bit_num > 0) {
  26. bit_arr <<= 6 - bit_num;
  27. base64_rep += digits[bit_arr];
  28. }
  29. let padding = base64_rep.length % 4;
  30. if (padding > 0) {
  31. for (let n = 0; n < 4 - padding; ++n) {
  32. base64_rep += "=";
  33. }
  34. }
  35. return base64_rep;
  36. };