crypto.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. // const CryptoJS = require('crypto-js');
  2. import Base64 from 'crypto-js/enc-base64'
  3. import Utf8 from 'crypto-js/enc-utf8'
  4. import AES from 'crypto-js/aes'
  5. import SHA1 from 'crypto-js/sha1'
  6. import MD5 from 'crypto-js/md5'
  7. import SparkMD5 from 'spark-md5'
  8. if (!uni.getStorageSync('deviceId')) {
  9. uni.setStorageSync('deviceId', Math.floor(Math.random() * 1000) + '-' + Date.now())
  10. }
  11. export const DEVICE_ID = uni.getStorageSync('deviceId')
  12. export const getBase64 = (content) => {
  13. const words = Utf8.parse(content)
  14. const base64Str = Base64.stringify(words)
  15. return base64Str
  16. }
  17. export const getAES = (content) => {
  18. const KEY = '1234567890123456'
  19. const IV = '1234567890123456'
  20. var key = Utf8.parse(KEY)
  21. var iv = Utf8.parse(IV)
  22. var encrypted = AES.encrypt(content, key, { iv: iv })
  23. return encrypted.toString()
  24. }
  25. /**
  26. * 获取authorisation
  27. * @param {Object} infos 相关信息
  28. * @param {String} type 类别:secret、token两种
  29. */
  30. export const getAuthorization = (infos, type) => {
  31. if (type === 'secret') {
  32. const str = `${infos.method.toLowerCase()}&${infos.uri}&${infos.timestamp}&${infos.accessSecret}`
  33. const sign = Base64.stringify(SHA1(str))
  34. return `Secret ${infos.accessKey}:${sign}`
  35. } else if (type === 'token') {
  36. const str = `${infos.method.toLowerCase()}&${infos.uri}&${infos.timestamp}&${infos.token}`
  37. const sign = Base64.stringify(SHA1(str))
  38. return `Token ${infos.sessionId}:${sign}`
  39. }
  40. }
  41. /**
  42. *
  43. * @param {any} str 字符串
  44. */
  45. export const getMD5 = (content) => {
  46. return MD5(content)
  47. }
  48. export const getFileMD5 = (dataFile) => {
  49. return new Promise((rs, rj) => {
  50. var fileReader = new FileReader()
  51. var spark = new SparkMD5() //创建md5对象(基于SparkMD5)
  52. if (dataFile.size > 1024 * 1024 * 10) {
  53. var data1 = dataFile.slice(0, 1024 * 1024 * 10) //将文件进行分块 file.slice(start,length)
  54. fileReader.readAsBinaryString(data1) //将文件读取为二进制码
  55. } else {
  56. fileReader.readAsBinaryString(dataFile)
  57. }
  58. fileReader.onload = function (e) {
  59. spark.appendBinary(e.target.result)
  60. var md5 = spark.end()
  61. rs(md5)
  62. }
  63. fileReader.onerror = function (err) {
  64. rj(err)
  65. }
  66. })
  67. }