mixStr copy.js 698B

12345678910111213141516171819202122232425262728293031
  1. const fill2Len = (str, len) => {
  2. if (!str) {
  3. return '*'.repeat(len)
  4. }
  5. const orginLen = str.length
  6. if (len <= orginLen) {
  7. return str.substr(0, len)
  8. }
  9. return str.repeat(Math.floor(len / orginLen)) + str.substr(0, len % orginLen)
  10. }
  11. const mixChars = window.navigator.userAgent // + (new Date).toUTCString().replace(/\d{2}:\d{2}:\d{2}/, '')
  12. const strXOR = (str, mix) => {
  13. if (!str) return str
  14. const strLen = str.length
  15. const mixStr = fill2Len(mix, strLen)
  16. const result = []
  17. for (let i = 0; i < strLen; i ++) {
  18. result.push(String.fromCharCode(str.charCodeAt(i) ^ mixStr.charCodeAt(i)))
  19. }
  20. return result.join('')
  21. }
  22. export default str => strXOR(str, mixChars)