首页 > 其他分享 >Mac M2 naviate 找回密码

Mac M2 naviate 找回密码

时间:2023-11-20 16:24:55浏览次数:28  
标签:function return string currentVector Mac naviate result M2 protected

导出链接


查看密码

在线 PHP脚本解析

<?php
namespace FatSmallTools;
class NavicatPassword
{
    protected $version = 0;
    protected $aesKey = 'libcckeylibcckey';
    protected $aesIv = 'libcciv libcciv ';
    protected $blowString = '3DC5CA39';
    protected $blowKey = null;
    protected $blowIv = null;
    public function __construct($version = 12)
    {
        $this->version = $version;
        $this->blowKey = sha1('3DC5CA39', true);
        $this->blowIv = hex2bin('d9c7c3c8870d64bd');
    }
    public function encrypt($string)
    {
        $result = FALSE;
        switch ($this->version) {
            case 11:
                $result = $this->encryptEleven($string);
                break;
            case 12:
                $result = $this->encryptTwelve($string);
                break;
            default:
                break;
        }
        return $result;
    }
    protected function encryptEleven($string)
    {
        $round = intval(floor(strlen($string) / 8));
        $leftLength = strlen($string) % 8;
        $result = '';
        $currentVector = $this->blowIv;
        for ($i = 0; $i < $round; $i++) {
            $temp = $this->encryptBlock($this->xorBytes(substr($string, 8 * $i, 8), $currentVector));
            $currentVector = $this->xorBytes($currentVector, $temp);
            $result .= $temp;
        }
        if ($leftLength) {
            $currentVector = $this->encryptBlock($currentVector);
            $result .= $this->xorBytes(substr($string, 8 * $i, $leftLength), $currentVector);
        }

        return strtoupper(bin2hex($result));

    }

    protected function encryptBlock($block)
    {
        return openssl_encrypt($block, 'BF-ECB', $this->blowKey, OPENSSL_RAW_DATA|OPENSSL_NO_PADDING); 
    }

    protected function decryptBlock($block)
    {
        return openssl_decrypt($block, 'BF-ECB', $this->blowKey, OPENSSL_RAW_DATA|OPENSSL_NO_PADDING); 
    }

    protected function xorBytes($str1, $str2)
    {
        $result = '';
        for ($i = 0; $i < strlen($str1); $i++) {
            $result .= chr(ord($str1[$i]) ^ ord($str2[$i]));
        }
        return $result;
    }

    protected function encryptTwelve($string)
    {
        $result = openssl_encrypt($string, 'AES-128-CBC', $this->aesKey, OPENSSL_RAW_DATA, $this->aesIv);
        return strtoupper(bin2hex($result));
    }
    
    public function decrypt($string)
    {
        $result = FALSE;
        switch ($this->version) {
            case 11:
                $result = $this->decryptEleven($string);
                break;
            case 12:
                $result = $this->decryptTwelve($string);
                break;
            default:
                break;
        }
        return $result;
    }
    
    protected function decryptEleven($upperString)
    {
        $string = hex2bin(strtolower($upperString));
        $round = intval(floor(strlen($string) / 8));
        $leftLength = strlen($string) % 8;
        $result = '';
        $currentVector = $this->blowIv;
        for ($i = 0; $i < $round; $i++) {
            $encryptedBlock = substr($string, 8 * $i, 8);
            $temp = $this->xorBytes($this->decryptBlock($encryptedBlock), $currentVector);
            $currentVector = $this->xorBytes($currentVector, $encryptedBlock);
            $result .= $temp;
        }
        if ($leftLength) {
            $currentVector = $this->encryptBlock($currentVector);
            $result .= $this->xorBytes(substr($string, 8 * $i, $leftLength), $currentVector);
        }
        return $result;
    }

    protected function decryptTwelve($upperString)
    {
        $string = hex2bin(strtolower($upperString));
        return openssl_decrypt($string, 'AES-128-CBC', $this->aesKey, OPENSSL_RAW_DATA, $this->aesIv);
    }
}


use FatSmallTools\NavicatPassword;

//需要指定版本,11或12
$navicatPassword = new NavicatPassword(12);

//解密
$decode = $navicatPassword->decrypt('B27DBE73957DE4B33694FCFC8D333F58');
echo $decode."\n";

查看密码

标签:function,return,string,currentVector,Mac,naviate,result,M2,protected
From: https://www.cnblogs.com/guanchaoguo/p/17844231.html

相关文章

  • After Effects 2024:打造引人入胜的视觉效果 mac/win版
    AfterEffects2024是一款由Adobe公司开发的视频特效和动画制作软件,是专业影视制作领域的必备工具之一。它可以帮助用户在Windows或Mac操作系统上创建各种类型的视频动画和特效,包括2D和3D合成、动画、色彩校正、音频合成等等。点击获取AfterEffects2023AfterEffects2024具......
  • App Cleaner & Uninstaller:全面优化Mac,提升运行效率
    AppCleaner&Uninstaller是一款专业的Mac清理卸载工具,它可以帮助用户轻松地清理Mac系统中的无用文件和卸载不需要的应用程序。通过使用这款工具,用户可以释放磁盘空间,提高系统运行速度,让Mac更加稳定和流畅。AppCleaner&Uninstaller获取AppCleaner&Uninstaller具有直观简......
  • openssl做HMAC实例(C++)----自测OK
    摘自:https://blog.csdn.net/mijichui2153/article/details/1047414601、HMAC简介(1)MAC(MessageAuthenticationCode,消息认证码算法),可以将其认为是含有秘钥的散列(Hash)函数算法;即兼容了MD和SHA算法,并在此基础上加上了秘钥。因此MAC算法也经常被称作HMAC算法。当然HMAC就是“基......
  • openssl做HMAC实例(C++)原文
    摘自:https://blog.csdn.net/mijichui2153/article/details/1047414601、HMAC简介(1)MAC(MessageAuthenticationCode,消息认证码算法),可以将其认为是含有秘钥的散列(Hash)函数算法;即兼容了MD和SHA算法,并在此基础上加上了秘钥。因此MAC算法也经常被称作HMAC算法。当然HMAC就是“基......
  • PHP 国密SM2 私钥公钥计算公式
      在线测试地址1.私钥可查询出公钥;公钥无法计算私钥,注意保护私钥安全;2.分割字符串:PHP函数substr($str,36|76);3.HEX转base64:PHP函数base64_encode(hex2bin());4.base64转HEX:PHP函数bin2hex(base64_decode());5.公钥HEX转PEM证书:字符串'3059301306072a8648ce3d02......
  • [oeasy]python001_先跑起来_python_三大系统选择_windows_mac_linux
    先跑起来......
  • 十四.SPI使用1——SPI基础和ICM20608的使用
    在日常设备使用中,最常用通讯协议就是I2C和SPI了,前面过了一遍I2C,I2C接口速度最快能到400K,但是SPI能到几时兆。下面我们来实现SPI的使用。SPI接口SPI硬件定义SPI和I2C一样属于一种串行通讯协议,但是I2C需要2根线实现通讯,这样就限制了传输的速度;SPI则需要4根线才能数据通信(如果是......
  • Parallels Desktop 12.2.1 (41615) Mac 中文版下载
    软件介绍ParallelsDesktop是一款虚拟化软件,允许你在Mac上创建一台运行Windows和其他操作系统的虚拟机,就好像它们是另一款Mac应用程序一样。与苹果的BootCamp不同,Parallels可以让你同时并行运行Mac和Windows应用程序。这意味着你可以在Mac桌面上浮动的窗口中查看Windows桌面,将Wi......
  • Adobe AfterEffects CC 2021 Mac Intel芯片 中文版
    软件介绍AfterEffects2021是Adobe推出的一款专业非线性视频编辑软件,经常需要编辑视频的人士对这款软件应该都不陌生吧。通过AfterEffects2021可以轻松制作火焰、冰雪、下雨等等视频后期特效,且效果都非常真实酷炫。软件自带丰富的动画资源库,满足用户的使用需求。神秘文件获......
  • Adobe AfterEffects CC 2021 Mac M1芯片 中文版
    软件介绍AfterEffects2021是Adobe推出的一款专业非线性视频编辑软件,经常需要编辑视频的人士对这款软件应该都不陌生吧。通过AfterEffects2021可以轻松制作火焰、冰雪、下雨等等视频后期特效,且效果都非常真实酷炫。软件自带丰富的动画资源库,满足用户的使用需求。神秘文件获......