定制 codigosecafe/grifo-hash 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

codigosecafe/grifo-hash

Composer 安装命令:

composer require codigosecafe/grifo-hash

包简介

Grifo é uma classe PHP para gerar hashing de senha e validação.

README 文档

README

Espero que possa ajudar como o hashing das senhas do seu sistema. Essa classe foi criada e testada no laravel.

Instalação

composer require codigosecafe/grifo-hash

Sobre a classe GrifoHash

GrifoHash é uma classe PHP para gerar hashing de senha e validação. A classe GrifoHash tem esse nome como sinonimo da palavra enigma inspirado no filme O Jogo da Imitação. Com uma ideia bem simples, de juntar alguns metodos de codificação e geração de hash para tornar a senha um pouco mais segura do que utilizar apenas um método como MD5, SHA-1 SHA-256 ou SHA-512. Esses métodos cumprem o que promete mas são notavelmente inseguros. A classe GrifoHash além de usufruir de alguns desses métodos finaliza o hashing com o padrão bcrypt/blowfish.

Recomendo a leitura do artigo em inglês: https://en.wikipedia.org/wiki/Bcrypt

Adcionando a classe GrifoHash no meu projeto

Para adicionar a classe basta importala para o seu projeto através do método "use". Ex.:

<?php 
use codigosecafe\GrifoHash;

Principais métodos da classe GrifoHash

::make_password()

Método responsável por gerar o hashing da senha que será armazenada no banco de dados. Indenpedente da senha sempre será gerado um hashing unico. Bom lembrar que o hash sempre será composto de 60 caracteres, então você pode definir a sua coluna que armazena a senha com CHAR(60) ou VARCHAR(60), claro se você estiver usando o MySQL/MariaDB. ;)

Criptografando senhas

Para criptografar a senha basta atribuir o valor digitado pelo usuario a uma variavel e execultar o método make_password(). Ex. Testado no Laravel:

<?php
namespace App\Http\Controllers;

use codigosecafe\GrifoHash;

class meuController extends Controller {

    public static function index() {

      // Instancio a classe GrifoHash
      $GrifoHash = new GrifoHash();

      //####################################################################// 

      // Senha digitada pelo usuario
      $senha_digitada = '1q2w3e4r'; // a senha pode ser coletada via o método $_POST ou $_GET
      // Gero o hashing da senha para ser salva no banco de dados
      $senha_gerada = $GrifoHash::make_password($senha_digitada);
      // Agora basta armazenar o valor da variavel $senha_gerada no campo senha da tabela do seu banco de dados
      echo "Senha gerada com hashing aleatorio e unico<br/>";
      echo "<b>$senha_gerada</b>";
      echo "<br/>Se a pagina for atualizada sera gerado outro hash<br/>";

    }

}

::check_pass()

Método responsável por comparar e validar o hashing da senha. Já que estamos trabalhando com um hashing gerado aleatoriamente, seria impossível gerar um novo hash indentico ao hash que está no banco. mas o método bcrypt/blowfish permite que eu consiga validar a senha. Ex. Testado no Laravel:

<?php
namespace App\Http\Controllers;

use codigosecafe\GrifoHash;

class meuController extends Controller {

    public static function index() {

    	// Instancio a classe GrifoHash
      $GrifoHash = new GrifoHash();

      //####################################################################// 

      // Senha digitada pelo usuario
      $senha_digitada = '1q2w3e4r'; // a senha pode ser coletada via o método $_POST ou $_GET

      // Para comparar a senha digitada com a senha salva no bando de dados
      // primeiro devo buscar a senha a ser comparada no banco
      // e atribuir ela a uma variavel 
      $senha_DB = '$2a$08$MTU4NDc5MDAxNDU5Mjc5Z.Nx0ZOYEiUDaOpyEMHZNNUYuJDHRgzI2'; // Senha salva no banco de dados com 60 caracters

      // Agora basta rodar o metodo de checagem dos hashing
      if ($GrifoHash::check_pass($senha_digitada, $senha_DB)) {
          echo 'Senha OK!';
      } else {
          echo 'Senha incorreta!';
      }

    }

}
Obs.: Caso tenha coriosidade como funciona todos os métodos da classe você pode ler o códigos font no arquivo src/GrifoHash/GrifoHash.php.

Author: Claudio Alexssandro Lino

Sou Full Stack Developer gosto de atuar em todas as fazes dos projetos, desde a criação do wireframe, configuração do servidor, planejamento das historias através dos métodos ágeis, codificação do backend e frontend.

Tenho experiência no frameworks Laravel (4 anos). Exerci varias funções dentro da minha profissão que qualificou a ser um Full Stack Developer , executei vários trabalhos como Web Design, Ilustrador WEB, Gerente de Media Social, Consultor SEO voltado para estrutura HTML, Desenvolvimento back-end para aplicações Web e Desktop, configuração e manutenção de servidores web baseado em linux.

Especializações: PHP, AngularJS, MySQL, PostgreSQL, MariaDB, Framework PHP Laravel, Intel® XDK, Ionic, Smarty Template - Blade Template - Bootstrap - Framework PHP CodeIgniter, Wordpress, Linux, Java Script, Jquery junto com Ajax, GIT e Vagrant.

codigosecafe+git@gmail.com | Skype: claudio.alexssandro | https://www.linkedin.com/in/claudioalexssandrolino/

codigosecafe/grifo-hash 适用场景与选型建议

codigosecafe/grifo-hash 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 20 次下载、GitHub Stars 达 0, 最近一次更新时间为 2019 年 12 月 31 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「password」 「MD5」 「codigosecafe」 「GrifoHash」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 codigosecafe/grifo-hash 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 codigosecafe/grifo-hash 我们能提供哪些服务?
定制开发 / 二次开发

基于 codigosecafe/grifo-hash 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 20
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 11
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2019-12-31