语言Gigabyte Z170N-WIFI 黑苹果 10.12

简述

此文短期更新

这是我先是次完整的和睦黑苹果,目的是搭建一台高性能的苹果主机,用于开发和规划。听说10.13系统还不是特其余稳定性,本次就控制安装10.12本子的

借助于的tonymacx86上的一篇文章,鉴于爬坑成功,就将本人要好的阅历结合这篇著作做一个完完全全的华语版本

正文总共分为六个板块:简述、软硬件准备、启动盘制作、安装系统、后续安装(包含驱动优化等等)

小说很长,不过算比较详细的

   没时间聊天了,赶紧上车啊。

1. 软硬件准备

自我的硬件设备如下:

  • 主板:Gigabyte Z170N-WIFI (bios为F7,F20的末端再出新作品)
  • CPU: i7-6700k(其他U好像也足以,会在前面选机型有差别)
  • 显卡:集显HD530
  • 网卡:主板自带(先前时期更换为博通BCM94352Z可免驱动)
  • 硬盘:Sata3接口250GB的SSD盘

其它什么内存、机箱、散热器、呈现器等由于不影响我们的操作,就临时忽略

在上马前你需要预备如下东西:

  • 一个足足16G的U盘,速度越快的越好这个不多提
  • 一个mac机器或者MacOS虚拟机(macOS系统语言要为英文,因为背后用到的软件要求必须是英文)
  • 在虚拟机中下载好 macOS Sierra
    10.12
  • 将上边六个软件拷贝到虚拟机的MacOS系统桌面上(可接纳直接在虚拟机的macOS中下载)
  1. Unibeast 密码: uvs6
  2. Multibeast 密码: ngdk
  3. Clover configurator 密码: vrwb

  4. 安装盘制作


  1. 将U盘插入你的苹果电脑或者挂载到虚拟机上(菜单中VM选项里面)
  2. 打开/Applications/Utilities/Disk Utility
  3. 在左手高亮接纳你的U盘
  4. 点击右上测的Erase按钮
  • Name: USB(最好填那几个,保持持续手续一样)
  • Format: OS X Extended (Journaled)
  • Scheme: GUID Partition Map
  1. 点击 Erase等待截至(此处即便不成功可多试两遍)
  2. 管教你现在U盘是非挂载状态(就是系统桌面上没有macOS Sierra的图标,有的话右键点击接纳Eject即可)
  3. 打开UniBeast
  4. 点击Continue, Continue, Continue, Continue, Agree
  5. 在Destination Select(安装地方接纳)处, 接纳 USB 并点击 Continue
  6. 在Select OS Installation(选取系统的界面)采纳斯莱瑞(Sierra)并点击 Continue
  7. 在Bootloader Options (启动形式)接纳 UEFI Boot Mode
  8. (上面这些手续为可选)遵照你实际的显卡来挑选充裕的驱动,由于自家是用的核显,所以什么都不选

长此以往的等候,你U盘快的话几分钟就好了,慢的话我见到有等了类似半时辰的。。。这么些软件进度条不走了并不是卡住了,耐心等待即可,喝点东西

完成后把前面下载的 Multibeast 和 Clover Configurator
拷贝到U盘中,安装盘制作完了

 
 在现世社会中,音信安全对于每一个人都是最首要的,例如大家的银行账户安全、支付宝和微信账户安全、以及邮箱等等,说到新闻安全,这就非得得提到加密技术,至于加密的一些息息相关概念,在此处就不说了。

3. 装置系统

  1. 启动电脑,在刚展现画面的时候就起来长按或者连续点击键盘上的
    Delete(或者Del)按键进入 BIOS
  2. 进去BIOS后,按F7将具有安装都还原为默认
  • 关掉VT-d选项(选Disable,下同)
  • 关掉Secure Boot Mode
  • 将OS Type 设置为 Other OS
  • 在Peripherals菜单中,将XHCI Handoff设置为打开(Enable)
  1. 按F10取舍save,系统活动重启
  2. 安插以前做好的启航盘
  3. 打开电脑
  4. 长按F12进来启动项采纳
  5. 分选面前有UEFI标志的U盘选项,点击后会进入Clover
  6. 在Clover中选择Boot Mac OS X from USB
  7. 等候加载,一会儿就到了系统语言选用的界面(鉴于前面你随便是用的苹果电脑依然macOS虚拟机,都安装过系统,所以系统设置这一节就不再详细讲解)
  8. 从头部菜单中选用 Utilities 并打开 Disk
    Utility
    ,格式化你想安装 MacOS 的硬盘为 OS X Extended
    (Journaled)
    ,分区格式为 GUID Partition Map,名字我这里命名为
    MacOS
  9. 格式化完成后,关掉 Disk Utility,进入系统安装
  10. 安装完成后会自动重启
  11. 重启完成后同样选拔 Clover 中的 Boot Mac OS X from USB

!!!
在设置过程中毫无拔出U盘,安装到位后同样也毫无拔出!(因为这时候我们是通过U盘指导启动的,拔掉就GG了)

据悉健康安装步骤直到系统设置完成(有块好板子要省下众多时间,啊哈哈哈)

!!! 不要拔出U盘

 
 那一次将会首要讲解.NET的加密方法,接下去将会独家介绍散列加密,对称加密,非对称加密等等加密方法在.NET中的应用,本文重要助教散列加密在.NET中的应用实例。

4. 继承安装

一.DotNet散列算法概述:

 
 说到散列应该都不会陌生,并且首先都会想到MD5加密,不过对于散列更加无时或忘的刺探,恐怕知道的人就不会那么多了。散列算法创设了一个散列码,也号称“消息摘要”或“音讯指纹”,看到“音信指纹”这一个词,我先是想到的是可以唯一识别一个音信或者说可以唯一的标识一个人。

A. 添加携带项,从而可以脱离U盘启动

  1. 在设置好的系统中,打开U盘
  2. 开辟 Clover Configurator,采用左边的 Mount EFI,
  3. 在右下侧框中找到你的 U 盘,点击前面的 Mount Partition
  4. 下一场点击 Open Partition,就打开了大家 U 盘的 EFI
    分区,大家在内部创制一个名为 test
    的公文夹(用于和前面即将挂载的系统盘EFI分区进行区分)
  5. 再找到您眼前 MacOS 安装的系统盘,点击右边 Mount Partition,然后点击
    Open Partition,这样我们就开辟了多少个EFI分区
  6. 将大家 test 文件夹所在相当分区的 EFI 文件夹打开,将除 APPLE
    文件夹以外的一切文书拷贝到另一个 EFI 分区的 EFI
    文件夹内(这一步不要拷贝反了,前边大家建立了一个名为 test
    的文书夹做好三个分区的区其它)

   1.散列算法原理概述:

 散列算法的骨干是一个数学函数,在五个稳定大小的数目块中运作它能够创建一个散列码。在散列算法中需要指定一个“种子值”,该值和第一块消息数据一同载入散列函数这就生成了第一个散列码,遵照上一步的措施,散列码依次进来下一个散列函数运算,最终拿到散列码,如下图所示:

   语言 1

 
 散列码是使用重复调用散列函数的链成立的,散列码倚重于音讯的单个位的值。散列函数是通过操作两块固定长度的二进制数据来生成散列码,散列算法则描述类使用散列函数为新闻成立散列码的进程,散列算法是行使散列函数的合计,指定类如何分解音讯及咋样链接以前信息快发生的结果。散列码的长短也有着限制,散列码长度较长时,需要的破解时间就会较长,这就是暴力破解的点子,不过散列码较长,生成散列码的光阴就是相比长,任何政策都是亟需付出代价的。

B. 添加必要驱动

  1. 现行打开U盘中的 MultiBeast,按以下举行安装
    • drivers:
    • audio: ALC1150
    • disk: third party SATA
    • network: intelmausethernet v2.2.0
    • USB: 7/8/9 Series USB support
    • Customize
    • graphics: HD530
    • system: 17,1
  2. 点击build选项卡后,会是以下图示情状语言 2

  3. 点击右下角的install,期间会让你输入密码,等待成功安装

设置到位后,就点击屏幕左上角的苹果图标,拔取关机(现在关机后会现身自己再也启航的气象,在她重启的时候大家直接按电源键关闭它即可),等待完成关机后,拔出U盘

接下来开机,同样是长按或者连续按F12,等待出现启动选项列表,选拔UEFI先河的同时指向您MacOS安装盘的不胜选项,点击起首起步进入Clover,在Clover中精选启动macos即可。

   2.DotNet的散列算法序列:

    在.NET中,常用的散列算法序列有如下二种:

语言 3

   
在上述列举的两种散列算法中,MD5是.NET含有的最快的散列算法。倘诺基础算法有欠缺,越长的散列码并不一定可以提供越好的日喀则。

C. 修复 HD530 显卡

  1. 开辟事先的 Clover configurator
  2. Mount 系统盘的 EFI 分区
  3. 打开 EFI 文件夹,打开Clover文件夹
  4. 找到config.plist,双击打开(或者右键选用用Clover Configrator打开)
  5. 左上侧列表找到devices选项
  6. 在面板中间找到add properties(很小的字),点击上边的+号,新增条款
  • device: IntelGFX
  • Key: AAPL,GfxYTile
  • Value: 01000000
  • Value type: data
  1. 下一场点击屏幕最上边的 File 中的 Save 举行封存
  2. 重启后系统来得就很通畅了

二.DotNet散列算法应用解析:

 
 以上对散列算法,以及散列算法在.NET中分类做了一个简单的介绍,接下去大家具体看一下再.NET中实现这两种散列算法的类。

 
 在.NET中System.Security.Cryptography命名空间下的HashAlgorithm类,表示所有加密哈希算法实现均必须从中派生的基类。有如下类结构:

语言 4

 
 在.NET中有两连串型的实现类,一个是以“Managed”结尾,这些类都被写入托管.NET语言,一种是以“Crypto瑟维斯(Service)(Service)Provider”结尾,这些类是依据Windows
CryptoAPI的。接下来我们具体的打听一下HashAlgorithm类的部分艺术:

D. 声音修复

  1. 如出一辙像在此之前,用 Clover Configrator 打开系统盘中的 config.plist
  2. 在左侧拔取 Acpi,在右手的 list of patches 下拉菜单中,选拔 Rename
    dsdt/HDAS to HDEF
  3. 保存
  4. 开辟 MultiBeast 8.2 或者更高的本子
  5. 分选 Drivers > Audio > RealtekALCxxx > 100 Series
    Audio(高版本这一个选项可能有点不同等,因为扩展了200多样主板的协理)
  6. 安装后回来 Clover Configerator
  7. 同一是 Acpi 的下拉列表中,采纳 Disables HDEF/HDMI audio ssdts
  8. 保存,重启
  9. 打开 MultiBeast
  10. Drivers > Audio > Realtek ALCxxx > √ ALC1150
  11. 安装然后重启,你的耳麦就足以用啦

   1.HashAlgorithm类主意和特性解析:

     (1).Hash属性:获取总计所得的哈希代码的值。

public virtual byte[] Hash
    {
      get
      {
        if (this.m_bDisposed)
          throw new ObjectDisposedException((string) null);
        if (this.State != 0)
          throw new CryptographicUnexpectedOperationException(Environment.GetResourceString("Cryptography_HashNotYetFinalized"));
        return (byte[]) this.HashValue.Clone();
      }
    }

 
该属性再次回到类统计机的散列码值,该属性是一个字节数组,由代码可以见到该属性是只读的,重返总结所得的哈希代码的脚下值。

     (2).Create()方法:创立哈希算法的指定实现的实例。

  public static HashAlgorithm Create(string hashName)
    {
      return (HashAlgorithm) CryptoConfig.CreateFromName(hashName);
    }

   
 由代码可知,指定哈希算法的新实例,假设hashName不是有效哈希算法,则为
null,该办法运用名称创立一个HashAlgorithm对象的新实例。

     (3).ComputeHash()方法:从字节数组和数量流中创立散列码。

 public byte[] ComputeHash(byte[] buffer)
    {
      if (this.m_bDisposed)
        throw new ObjectDisposedException((string) null);
      if (buffer == null)
        throw new ArgumentNullException("buffer");
      this.HashCore(buffer, 0, buffer.Length);
      this.HashValue = this.HashFinal();
      byte[] numArray = (byte[]) this.HashValue.Clone();
      this.Initialize();
      return numArray;
    }

 
 以上是ComputeHash()方法的一个重载版本,使用字节数组来创立一个散列码,该模式再次来到一个字节数组,该数组含有信息数据的散列码。HashCore()将写入对象的数据路由到哈希算法以总计哈希值,HashFinal()在加密流对象处理完最终的数码后完成哈希统计。

流行进度

通过修改 Config.plist 扩充 DSDT.aml 实现了 CPU 从 0.8 到 4.6
的变频+超频,关机后自行重启问题也早就完美解决,开机速度提高了6倍左右。

新颖的完全 EFI 文件夹(已经删除 SMBIOS 数据项,请自行添加你协调的)
EFI-20171231-10.12.06-已经落实CPU变频
密码: 88w5

前些天将 Bios 升级到了 F20f
发现系统不可能启动了,经过一番磨难后,得出解决方法:删除 EFI 文件夹内
Clover 内 Acpi 中的 dsdt.aml 删除即可。

   2.HMAC类: 表示依据哈希的信息证实代码 (HMAC) 的兼具实现必须从中派生的抽象类。

     创设加密散列码(音讯验证码MACs)有三种方法:

     
 第一种:先合并类密钥和音信数据,再接纳普通的加密散列算法来为该并集创造散列码。常用的是HMAC标准。

     
 第二种:使用对称算法来加密信息数据,除了最后几位之外,所有的加密数据位都将被遗弃。

 
 HMAC标准制定了何等联合信息数据和密钥,可是没有点名相应利用这种散列算法来创建散列码,那也就代表该标准可以动用于此外算法。

    (1).Key属性:获取或设置用于哈希算法的密钥。

 public override byte[] Key
    {
      get
      {
        return (byte[]) this.KeyValue.Clone();
      }
      set
      {
        if (this.m_hashing)
          throw new CryptographicException(Environment.GetResourceString("Cryptography_HashKeySet"));
        this.InitializeKey(value);
      }
    }

   该属性在此地开展类重写,该属性是一个字节数组,属性可读写。

    (2).Create()方法:创设基于哈希的信息证实代码 (HMAC) 指定实现的实例。

public static HMAC Create(string algorithmName)
    {
      return (HMAC) CryptoConfig.CreateFromName(algorithmName);
    }

   该方法指定的 HMAC
实现的新实例,该办法跟HashAlgorithm类的Create方法类似,这里就不做浓密的剖析。

    (3).HashCore()方法:将写入对象的数据路由给默认 HMAC
哈希算法以总计哈希值。

  protected override void HashCore(byte[] rgb, int ib, int cb)
    {
      if (!this.m_hashing)
      {
        this.m_hash1.TransformBlock(this.m_inner, 0, this.m_inner.Length, this.m_inner, 0);
        this.m_hashing = true;
      }
      this.m_hash1.TransformBlock(rgb, ib, cb, rgb, ib);
    }

   该办法在这里被重写,将写入对象的数据路由给默认 HMAC
哈希算法以总括哈希值。TransformBlock()总结输入字节数组的指定区域的哈希值,将输入字节数组的指定区域复制到指定的区域,输出字节数组。

三.DotNet散列算法实现实例:

   以上介绍在.NET下的散列加密的紧要类,接下去看一下MD5的切切实实贯彻代码:

  /// <summary>
  /// 表示 MD5哈希算法的所有实现均从中继承的抽象类。
  /// </summary>
  [ComVisible(true)]
  public abstract class MD5 : HashAlgorithm
  {
    /// <summary>
    /// 初始化 MD5 的新实例。
    /// </summary>
    protected MD5()
    {
      this.HashSizeValue = 128;
    }

    /// <summary>
    /// 创建MD5 哈希算法的默认实现的实例。
    /// </summary>
    /// <returns>
    /// <see cref="T:System.Security.Cryptography.MD5"/> 哈希算法的新实例。
    /// </returns>   
    public static MD5 Create()
    {
      return MD5.Create("System.Security.Cryptography.MD5");
    }

    /// <summary>
    /// 创建MD5 哈希算法的指定实现的实例。
    /// </summary> 
    /// <returns>
    public static MD5 Create(string algName)
    {
      return (MD5) CryptoConfig.CreateFromName(algName);
    }
  }

 
 由以上的代码可以看住,在MD5类中,具体的落实格局都是由HashAlgorithm类的Create方法实现,在此处就不再做牵线。

   1.SHA1算法实例:

   public static string GetSha1(string str)
        {
            if (string.IsNullOrEmpty(str))
            {
                throw new ArgumentNullException(str);
            }
            try
            {
                //建立SHA1对象
                SHA1 sha = new SHA1CryptoServiceProvider();
                //将mystr转换成byte[] 
                var enc = new ASCIIEncoding();
                var dataToHash = enc.GetBytes(str);
                //Hash运算
                var dataHashed = sha.ComputeHash(dataToHash);
                //将运算结果转换成string
                var hash = BitConverter.ToString(dataHashed).Replace("-", "");
                return hash;
            }
            catch (ArgumentNullException ex)
            {
                throw ex;
            }
            catch (ArgumentException arex)
            {
                throw arex;
            }
            catch (ObjectDisposedException obex)
            {
                throw obex;
            }

   2.MD5加密实例:

  /// <summary>
        /// 32位大写
        /// </summary>
        /// <returns></returns>
        public static string Upper32(string s)
        {
            var hashPasswordForStoringInConfigFile = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(s, "md5");
            if (hashPasswordForStoringInConfigFile != null)
                s = hashPasswordForStoringInConfigFile;
            return s.ToUpper();
        }

        /// <summary>
        /// 32位小写
        /// </summary>
        /// <returns></returns>
        public static string Lower32(string s)
        {
            var hashPasswordForStoringInConfigFile = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(s, "md5");
            if (hashPasswordForStoringInConfigFile != null)
                s = hashPasswordForStoringInConfigFile;
            return s.ToLower();
        }

        /// <summary>
        /// 16位大写
        /// </summary>
        /// <returns></returns>
        public static string Upper16(string s)
        {
            var hashPasswordForStoringInConfigFile = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(s, "md5");
            if (hashPasswordForStoringInConfigFile != null)
                s = hashPasswordForStoringInConfigFile.ToString();
            return s.ToUpper().Substring(8, 16);
        }

        /// <summary>
        /// 16位小写
        /// </summary>
        /// <returns></returns>
        public static string Lower16(string s)
        {
            var hashPasswordForStoringInConfigFile = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(s, "md5");
            if (hashPasswordForStoringInConfigFile != null)
                s = hashPasswordForStoringInConfigFile.ToString();
            return s.ToLower().Substring(8, 16);
        }

四.总结:

   
以上介绍了散列算法在.NET的选取和原理,希望可以帮到一些人,假使随笔中有写的荒唐和不到位的地点,还望我们多多批评指正。

 
友情添加一个加密的helper方法:http://www.cnblogs.com/liqingwen/p/6155694.html

 

加密算法连串:

     
 DotNet加密方法分析–散列加密:http://www.cnblogs.com/pengze0902/p/6268700.html

     
 DotNet加密方法分析–对称加密:http://www.cnblogs.com/pengze0902/p/6268702.html

     
 DotNet加密方法分析–数字签名:http://www.cnblogs.com/pengze0902/p/6268709.html

     
 DotNet加密方法分析–非对称加密:http://www.cnblogs.com/pengze0902/p/6268705.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图