[关闭]
@jzp113 2018-02-09T02:58:29.000000Z 字数 2020 阅读 1172

东方头条、南方头条api分析

api 安卓 逆向


1.获取认证key
Get请求 http://tjv1.dftoutiao.com/getkey/key?appver=010501

2.生成加密key
调用下面keys代码生成加密key

  1. <?php
  2. //Enter your code here, enjoy!
  3. function s($str){
  4. $i = 3;
  5. $i2 = 0;
  6. if ($str == false || strlen($str) != 13) {
  7. return false;
  8. }
  9. $str2;
  10. $substring = substr($str, 1, 8);
  11. $toCharArray = substr($str, 10);
  12. $i3 = ord($toCharArray[0]) % 8;
  13. if ($i3 < 3) {
  14. $i3 = 3;
  15. }
  16. $i4 = ord($toCharArray[1]) % 8;
  17. if ($i4 >= 3) {
  18. $i = $i4;
  19. }
  20. // echo $i3."\n".$i;
  21. $substring2 = substr($substring, 0, $i3);
  22. $str3 = "";
  23. // echo $substring."\n";
  24. for ($i3 = strlen($substring) - 1; $i3 >= strlen($substring) - $i; $i3--){
  25. $str3 = $str3.$substring[$i3];
  26. }
  27. // echo $str3."\n";
  28. if (strlen($substring2) > strlen($str3)) {
  29. $i = strlen($substring2) - strlen($str3);
  30. $toCharArray2 = $str3;
  31. for ($i3 = 0; $i3 < $i; $i3++) {
  32. $str3 = $str3.$toCharArray2[$i3 % strlen($toCharArray2)];
  33. }
  34. $str2 = $substring2;
  35. } else if (strlen($str3) > strlen($substring2)) {
  36. $length = strlen($str3) - strlen($substring2);
  37. $toCharArray3 = $substring2;
  38. $i = 0;
  39. $str2 = $substring2;
  40. while ($i < $length) {
  41. $substring2 = $str2.$toCharArray3[$i % strlen($toCharArray3)];
  42. $i++;
  43. $str2 = $substring2;
  44. }
  45. } else {
  46. $str2 = $substring2;
  47. }
  48. // return $str2."\n".$str3;
  49. $bytes = array();
  50. $bytes2 = array();
  51. $iArr = array();
  52. for($i = 0; $i < strlen($str2); $i++){
  53. $bytes[] = ord($str2[$i]);
  54. }
  55. for($i = 0; $i < strlen($str3); $i++){
  56. $bytes2[] = ord($str3[$i]);
  57. }
  58. // print_r($bytes2);
  59. // byte[] bytes = str2.getBytes();
  60. // byte[] bytes2 = str3.getBytes();
  61. // int[] iArr = new int[str2.length()];
  62. switch (ord($toCharArray[2]) % 4) {
  63. case 0:
  64. for ($i3 = 0; $i3 < strlen($str2); $i3++) {
  65. $iArr[$i3] = $bytes[$i3] + $bytes2[$i3];
  66. }
  67. break;
  68. case 1:
  69. for ($i3 = 0; $i3 < strlen($str2); $i3++) {
  70. $iArr[$i3] = abs($bytes[$i3] - $bytes2[$i3]);
  71. }
  72. break;
  73. case 2:
  74. for ($i3 = 0; $i3 < strlen($str2); $i3++) {
  75. $iArr[$i3] = $bytes[$i3] & $bytes2[$i3];
  76. }
  77. break;
  78. case 3:
  79. for ($i3 = 0; $i3 < strlen($str2); $i3++) {
  80. $iArr[$i3] = $bytes[$i3] ^ $bytes2[$i3];
  81. }
  82. break;
  83. }
  84. print_r($iArr);
  85. $str4 = "";
  86. for($i=0;$i<strlen($str2);$i++){
  87. $st = dechex($iArr[$i]);
  88. if(strlen($st) == 1){
  89. $st = "0".$st;
  90. }
  91. $str4 = $str4.$st;
  92. }
  93. for ($i3 = strlen($str4); $i3 < 16; $i3++) {
  94. $str4 = $str4."0";
  95. }
  96. $f = hexdec($str4);
  97. $s2 = sprintf ( "%.0f", $f );
  98. return $s2;
  99. }
  100. function keys($prefix,$s){
  101. return substr(md5($prefix.s($s).$s), 8,16);
  102. }
  103. echo keys("toutiao","3xWjFkcZGlPS3");
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注