复制链接

扫一扫

二次开发 自定义加密解密开发

软件和服务器通信过程中会使用到加密解密。

BSPHP完全支持二次开发自己的加密解密的的

BSPHP加密解密目录:include/applibapi/encryption

我们拿BASE64做参考 bsphp_base64.php (公布版是加密的代码,把加密代码直接替换即可)

  1. <?php
  2. /**
  3. * @明文加密脚本
  4. * 加密类型:Base64编码
  5. *
  6. * 加密解密函数组成
  7. * 文件名_bsphp_mencrypt(系统传送数据库参数,系统传送密码参数) 加密
  8. * 文件名_bsphp_mdecrypt(系统传送数据库参数,系统传送密码参数) 解密
  9. *
  10. * 以上2个为系统固定参数
  11. */
  12. /**
  13. * @加密
  14. */
  15. function bsphp_base64_bsphp_mencrypt($data, $key)
  16. {
  17. //因为是标准的Base64编码所以key参数用不到
  18. $data = base64_encode($data);
  19. return ($data);
  20. }
  21. /**
  22. * @解密
  23. */
  24. function bsphp_base64_bsphp_mdecrypt($data, $key)
  25. {
  26. //因为是标准的Base64编码所以key参数用不到
  27. $data = base64_decode($data);
  28. return ($data);
  29. }

RC4的加密解密

  1. <?php
  2. /**
  3. * @明文加密脚本
  4. * 加密类型:RC4编码
  5. *
  6. * 加密解密函数组成
  7. * 文件名_bsphp_mencrypt(系统传送数据库参数,系统传送密码参数) 加密
  8. * 文件名_bsphp_mdecrypt(系统传送数据库参数,系统传送密码参数) 解密
  9. *
  10. * 以上2个为系统固定参数
  11. */
  12. //
  13. //echo bsphp_rc4_bsphp_mencrypt('sssssss','wEzb8NVc1p7SNf6hIc');
  14. //echo bsphp_rc4_bsphp_mdecrypt('xDTvL9ZAH8c5vhIMtxJ+kR1hzy4kxds+cpVbauxh0AzfrwnAOdMSFn2befIFPfrPo/Lvpkg7GfxjsS/D524IXO4FBnzJ12faatNFEKfuag8Gd/rbQljGMUvRc1S8wgNQzG9kKa77lwFmT327P9uDo3Iaib4PBpiBclVyUl0g3p+pRyAKlcITleuSz2ZzmwqgsRgnxaCDVNWzf255whzbV7On/oBONZ8uHHZAaqSO8Sxm1HKtHV31h13V32KssqBUZ4WRt8XVLBGkVwiIsEdYeSU3PXucwAqUPDMLaNEgwUrmi+yMmprwvygTP/CHTFD7WUdZYo1/xHdyP0Rev8OjIo9Pc132zTug3qp56V+yjBk49+Mosa1g8=','xDTvL9ZAH8c5vhIMtx');
  15. /**
  16. * @加密
  17. *
  18. * 文件名_bsphp_mencrypt(系统传送数据库参数,系统传送密码参数) 加密
  19. */
  20. function bsphp_rc4_bsphp_mencrypt($data, $key)
  21. {
  22. //因为是标准的Base64编码所以key参数用不到
  23. $data = rc4_en($data, $key);
  24. return ($data);
  25. }
  26. /**
  27. * @解密
  28. *
  29. * 文件名_bsphp_mdecrypt(系统传送数据库参数,系统传送密码参数) 解密
  30. */
  31. function bsphp_rc4_bsphp_mdecrypt($data, $key)
  32. {
  33. //因为是标准的Base64编码所以key参数用不到
  34. $data = rc4_de($data, $key);
  35. return ($data);
  36. }
  37. function rc4_de($data, $pwd) //$pwd密钥 RC4解密
  38. {
  39. $cipher = '';
  40. $data = base64_decode($data);
  41. $key[] = "";
  42. $box[] = "";
  43. $pwd_length = strlen($pwd);
  44. $data_length = strlen($data);
  45. for ($i = 0; $i < 256; $i++) {
  46. $key[$i] = ord($pwd[$i % $pwd_length]);
  47. $box[$i] = $i;
  48. }
  49. for ($j = $i = 0; $i < 256; $i++) {
  50. $j = ($j + $box[$i] + $key[$i]) % 256;
  51. $tmp = $box[$i];
  52. $box[$i] = $box[$j];
  53. $box[$j] = $tmp;
  54. }
  55. for ($a = $j = $i = 0; $i < $data_length; $i++) {
  56. $a = ($a + 1) % 256;
  57. $j = ($j + $box[$a]) % 256;
  58. $tmp = $box[$a];
  59. $box[$a] = $box[$j];
  60. $box[$j] = $tmp;
  61. $k = $box[(($box[$a] + $box[$j]) % 256)];
  62. $cipher .= chr(ord($data[$i]) ^ $k);
  63. }
  64. ///$cipher = base64_decode($cipher);
  65. return $cipher;
  66. }
  67. function rc4_en($data, $pwd) //$pwd密钥 RC4加密
  68. {
  69. $cipher = '';
  70. $key[] = "";
  71. $box[] = "";
  72. $pwd_length = strlen($pwd);
  73. $data_length = strlen($data);
  74. for ($i = 0; $i < 256; $i++) {
  75. $key[$i] = ord($pwd[$i % $pwd_length]);
  76. $box[$i] = $i;
  77. }
  78. for ($j = $i = 0; $i < 256; $i++) {
  79. $j = ($j + $box[$i] + $key[$i]) % 256;
  80. $tmp = $box[$i];
  81. $box[$i] = $box[$j];
  82. $box[$j] = $tmp;
  83. }
  84. for ($a = $j = $i = 0; $i < $data_length; $i++) {
  85. $a = ($a + 1) % 256;
  86. $j = ($j + $box[$a]) % 256;
  87. $tmp = $box[$a];
  88. $box[$a] = $box[$j];
  89. $box[$j] = $tmp;
  90. $k = $box[(($box[$a] + $box[$j]) % 256)];
  91. $cipher .= chr(ord($data[$i]) ^ $k);
  92. }
  93. $cipher = base64_encode($cipher);
  94. return $cipher;
  95. }
  96. //echo rc4_en('xxxxxxxxxxx','bsphp');
  97. //echo rc4_de('nYz3kY04UPKZkzwNxOz0BbV6EnB0MRbWYeM2qYGw','bsphp');