test.js 969 B

12345678910111213141516171819202122232425262728293031323334353637
  1. var express = require('express');
  2. var request = require('superagent');
  3. var router = express.Router();
  4. var crypto = require('crypto');
  5. /* GET test page. */
  6. router.get('/', function(req, res, next) {
  7. var id = req.query.id || '';
  8. if (id) {
  9. var sid = encrypted_id(id);
  10. var k = 'http://m2.music.126.net/' + sid + '/' + id + '.mp3'
  11. res.send({
  12. link: k
  13. });
  14. } else {
  15. res.send({ msg: 'no id' });
  16. }
  17. });
  18. function encrypted_id(id) {
  19. var res = {
  20. id: id
  21. };
  22. var magic = Buffer.from('3go8&$8*3*3h0k(2)2', 'ascii');
  23. var len = magic.length;
  24. var sid = Buffer.from(id, 'ascii');
  25. for (var i in sid) {
  26. sid[i] = sid[i] ^ magic[i % len];
  27. }
  28. var m = crypto.createHash('md5');
  29. sid = m.update(sid).digest();
  30. res['md5'] = sid;
  31. var result = sid.toString('base64');
  32. result = result.replace(/\//g, '_').replace(/\+/g, '-')
  33. return result;
  34. }
  35. module.exports = router;