Source for file decrypt_headers.php

Documentation is available at decrypt_headers.php

  1. <?php
  2. /**
  3. * Script provides form to decode encrypted header information.
  4. *
  5. * @copyright 2005-2020 The SquirrelMail Project Team
  6. * @license http://opensource.org/licenses/gpl-license.php GNU Public License
  7. * @version $Id: decrypt_headers.php 14840 2020年01月07日 07:42:38Z pdontthink $
  8. * @package squirrelmail
  9. */
  10. /**
  11. * Set constant to path of your SquirrelMail install.
  12. * @ignore
  13. */
  14. define ('SM_PATH','../');
  15. /**
  16. * include SquirrelMail string and generic functions
  17. * script needs OneTimePadDecrypt() (functions/strings.php)
  18. * and sqgetGlobalVar() (functions/global.php)
  19. */
  20. include_once(SM_PATH.'functions/global.php');
  21. include_once(SM_PATH.'functions/strings.php');
  22. /**
  23. * converts hex string to ip address
  24. * @param string $hex hexadecimal string created with squirrelmail ip2hex
  25. * function in delivery class.
  26. * @return string ip address
  27. * @since 1.5.1 and 1.4.5
  28. */
  29. function hex2ip ($hex) {
  30. if (strlen ($hex)==8) {
  31. $ret=hexdec (substr ($hex,0,2)).'.'
  32. .hexdec (substr ($hex,2,2)).'.'
  33. .hexdec (substr ($hex,4,2)).'.'
  34. .hexdec (substr ($hex,6,2));
  35. } elseif (strlen ($hex)==32) {
  36. $ret=substr ($hex,0,4).':'
  37. .substr ($hex,4,4).':'
  38. .substr ($hex,8,4).':'
  39. .substr ($hex,12,4).':'
  40. .substr ($hex,16,4).':'
  41. .substr ($hex,20,4).':'
  42. .substr ($hex,24,4).':'
  43. .substr ($hex,28,4);
  44. } else {
  45. $ret=$hex;
  46. }
  47. return $ret;
  48. }
  49. /** create page headers */
  50. header ('Content-Type: text/html');
  51. echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">'
  52. ."\n<head>\n<meta name=\"robots\" content=\"noindex,nofollow\">\n"
  53. ."</head><body>";
  54. if (sqgetGlobalVar ('submit',$submit,SQ_POST )) {
  55. $continue = TRUE;
  56. if (! sqgetGlobalVar ('secret',$secret,SQ_POST ) ||
  57. empty($secret)) {
  58. $continue = FALSE;
  59. echo "<p>You must enter an encryption key.</p>\n";
  60. }
  61. if (! sqgetGlobalVar ('enc_string',$enc_string,SQ_POST ) ||
  62. empty($enc_string)) {
  63. $continue = FALSE;
  64. echo "<p>You must enter an encrypted string.</p>\n";
  65. }
  66. if ($continue) {
  67. if (isset($enc_string) && ! base64_decode ($enc_string)) {
  68. echo "<p>Encrypted string should be BASE64 encoded.<br />\n"
  69. ."Please enter all characters that are listed after header name.</p>\n";
  70. } elseif (isset($secret)) {
  71. $string=OneTimePadDecrypt ($enc_string,base64_encode ($secret));
  72. if (sqgetGlobalVar ('ip_addr',$is_addr,SQ_POST )) {
  73. $string=hex2ip ($string);
  74. }
  75. echo "<p>Decoded string: ".htmlspecialchars ($string)."</p>\n";
  76. }
  77. }
  78. echo "<hr />";
  79. }
  80. ?>
  81. <form action="<?php echo $PHP_SELF ?>" method="post" >
  82. <p>
  83. Secret key: <input type="password" name="secret"><br />
  84. Encrypted string: <input type="text" name="enc_string"><br />
  85. <label for="ip_addr">Check here if you are decoding an address string (FromHash/ProxyHash): </label><input type="checkbox" name="ip_addr" id="ip_addr" /><br />
  86. <button type="submit" name="submit" value="submit">Submit</button>
  87. </p>
  88. </form>
  89. </body></html>

Documentation generated on 2020年1月13日 04:24:28 +0100 by phpDocumentor 1.4.3

AltStyle によって変換されたページ (->オリジナル) /