Como criptografar texto dentro de um script PHP

Neste post vou mostrar como usar a função crypt do PHP, para codificar em base64 um texto dentro de um script.
O exemplo pode ser facilmente adaptado ou readequado para ser usado em seus scripts do dia a dia.
O programa pega o texto “uma senha qualquer” e a criptografa.
Em seguida, exibe o resultado criptografado na tela.
O código tanto pode ser executado no seu servidor web (Apache) como no terminal.
No meu exemplo, uso um terminal.
Segue o código, com os comentários:


<?PHP
// senha em texto puro a ser criptografada
$senhaTextoPuro = 'uma senha qualquer';

// criptografa o texto dado acima
$senha = crypt($senhaTextoPuro, base64_encode($senhaTextoPuro));

// exibe a senha codificada
echo $senha;
?>

Eu gravei o códio em um arquivo chamado senha.php
Para rodar o script no terminal, invoque o interpretador PHP:


php senha

dWo4bd6Qavg2Q

Personalize ou crie comandos próprios no Linux com o alias

Mesmo que você não conheça o comando alias, ele provavelmente já está sendo usado em seu sistema.
Os arquivos de configurações pessoais .bashrc ou .bash_profile devem ter uma série de configurações com o uso do alias.

“Alias”, quer dizer apelido.
Sua função é dar nomes curtos para sequências grandes de comandos.

Por exemplo, você pode criar um alias para realizar a atualização do seu sistema, na linha de comandos (CLI):


alias atualiza="sudo apt update"

atualiza

[sudo] senha para justincase: 

O arquivo de configuração .bashrc, presente no seu diretório home (no Debian), já vem com alguns alias predefinidos:

 
cat .bashrc | grep alias

# enable color support of ls and also add handy aliases
    alias ls='ls --color=auto'
    #alias dir='dir --color=auto'
    #alias vdir='vdir --color=auto'
    alias grep='grep --color=auto'
    alias fgrep='fgrep --color=auto'
    alias egrep='egrep --color=auto'
# some more ls aliases
alias ll='ls -l'
alias la='ls -A'
alias l='ls -CF'

No meu caso, a maioria está relacionada ao comando grep e ls.

Armazene os apelidos em um arquivo externo

Opcionalmente, você pode adicionar todos os seus alias a um arquivo externo, chamado .bash_aliases (ou outro nome, à sua escolha). Para isto, acrescente ao arquivo de configuração pessoal do Bash (.bashrc), as seguintes linhas:

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

No Debian, estas linhas já estão presentes. De forma que é possível já criar e editar o arquivo .bash_aliases.
Não é obrigatório. Apenas pode ajudar a organizar melhor seus arquivos de configuração do sistema.

Sugestões de alias para usar no seu sistema

Se há sequências de comandos muito longas e usadas, elas podem ser encurtadas em apelidos.
As sequências de atualização do sistema, por exemplo:

alias sau="sudo apt update"
alias alu="apt list --upgradable"
alias saf="sudo apt full-upgrade"

Você pode adicionar apelidos para chegar mais rápido às suas pastas de arquivos mais acessadas:

alias documentos="cd ~/Documentos"
alias scripts="cd ~/scripts/python"
alias vid="cd ~/Vídeos"
alias down="cd ~/Downloads/"
alias mus="cd ~/Músicas/"
alias wallp="cd ~/Imagens/wallpapers"

Alguns comandos úteis para o seu sistema:

alias sair="exit" # para encerrar a sessão no terminal atual
alias reset="systemctl reboot" # para reiniciar o sistema
alias desligar="systemctl poweroff" # para desligar o sistema
alias suspender="systemctl suspend" # para suspender o sistema
alias hibernar="systemctl hibernate" # para hibernar

Obtenha outras sugestões de uso do alias, neste artigo.


Saiba mais sobre as diferenças entre suspender, hibernar e hybrid-sleep.
Use sempre alias para criar apelidos curtos para sequências de comandos grandes — mas que não são tão extensos, que justifique criar um script. 😉
Você tem outras sugestões?! Então, conta pra gente, na caixa de comentários.

Como criar um registro da sua linha de comando no Linux

Você pode querer registrar todos os comandos dados durante uma sessão, no terminal.
Usualmente, para depois analisar com calma e, se for o caso, criar um script a partir deles, para automatizar a tarefa.
Pode ser útil também em aulas, quando o professor deseja aplicar um teste. O aluno apenas envia para ele o arquivo resultado.
O utilitário script inicia automaticamente a gravação (no arquivo typescript) de todas os comandos executados no seu terminal.
Quando terminar e desejar sair da gravação, use o comando exit.
Veja um exemplo:


script


Script iniciado, o arquivo é typescript
justincase@ultra-5 

echo "Toda esta linha será gravada em um arquivo chamado typescript."

ls # esta também.

exit

Script concluído, o arquivo é typescript

cat typescript

linux script save
Se preferir, é possível indicar um outro nome para o seu arquivo:


script meuarquivo.log

Como comportamento padrão, o script sobrescreve o arquivo existente.
Use a opção ‘–append’ ou ‘-a’ para adicionar código a um arquivo preexistente.


script --append backup.sh

Como criar tabelas MySQL em um script PHP

Já expliquei anteriormente, no artigo como criar tabelas no MySQL como realizar esta mesma tarefa dentro da linha de comandos do MySQL.
Neste texto, vou mostrar como obter o resultado através de um script PHP.
Abra o seu editor de textos favorito e vamos ao código:

<html>
<head>
<title>Como criar tabelas com PHP</title>
</head>
<body>
<?php
/* substitua as variáveis abaixo pelas que se adequam ao seu caso */
$dbhost = 'localhost:3036'; // endereco do servidor de banco de dados
$dbuser = 'root'; // login do banco de dados
$dbpass = 'minhasenha'; // senha
$dbname = 'nomebanco'; // nome do banco de dados a ser usado
$conecta = mysql_connect($dbhost, $dbuser, $dbpass, $dbname);
$seleciona = mysql_select_db($dbname);
$sqlcriatabela = "CREATE TABLE contatos (nome VARCHAR(50), telefone VARCHAR(25));";
$criatabela = mysql_query( $sqlcriatabela, $conecta );

// inicia a conexao ao servidor de banco de dados
if(! $conecta )
{
  die("<br />Nao foi possivel conectar: " . mysql_error());
}
echo "<br />Conexao realizada!";

// seleciona o banco de dados no qual a tabela vai ser criada
if (! $seleciona)
{
  die("<br />Nao foi possivel selecionar o banco de dados $dbname");
}
echo "<br />selecionado o banco de dados $dbname";

// finalmente, cria a tabela 
if(! $criatabela )
{
  die("<br />Nao foi possivel criar a tabela: " . mysql_error());
}
echo "<br />A tabela foi criada!";

// encerra a conexão
mysql_close($conecta);
?>
</body>
</html>

Crie uma tabela temporária no MySQL

Ao usar o parâmetro TEMPORARY, a tabela seria criada e depois eliminada, ao final da sessão, com o comando mysql_close($conecta); na linha 39. Assim, a cada vez que a página é recarregada, a tabela é recriada e removida.
Altere o código, pratique e divirta-se!

Faça chover no seu terminal com este script Python

A tarefa deste pequeno script Python é simular chuva no seu terminal.
O meu exemplo foi rodado com o Python 2, em uma máquina Debian Linux. Sinta-se à vontade para experimentar em outras plataformas contudo.

O script, abaixo, joga 100 “gotas” aleatórias de “chuva” no seu terminal e é um ótimo exemplo do uso da função random no Python.

Se você não tiver um compilador ou interpretador Python disponível, no momento, experimente um destes compiladores/interpretadores online.
python como fazer chover ou nevar no terminal
Veja o que mais o script faz:

  • o script usa o caractere “/” para representar as gotas de chuva. Mas você pode escolher qualquer outro.
    Se você trocar o caractere “/” para ” ‘ “, o efeito vai parecer que está caindo neve no seu terminal;
  • ao final da chuva, uma mensagem é exibida centralizada na tela.
  • roda em qualquer tamanho de terminal;

Segue o código:

import curses
import random
import time

myscreen = curses.initscr()
curses.curs_set(0) # no cursor please 
HEIGHT, WIDTH = myscreen.getmaxyx() 
RAIN = '/' # altere aqui a aparencia da sua gota de chuva 
TIME = 10 

def make_it_rain(window, tot_time, msg, wait_time, num_drops):
    """
    window    :: a janela no curses 
    time      :: duracao da chuva
    msg       :: mensagem exibida ao final da chuva
    wait_time :: tempo de espera entre cada quadro
    num_drops :: quantidade de gotas
    """
    for _ in range(tot_time):
        for i in range(num_drops):
            x,y=random.randint(1, HEIGHT-2),random.randint(1,WIDTH-2)       
            window.addstr(x,y,RAIN)
        window.refresh()
        time.sleep(wait_time)
        window.erase()

    window.refresh()
    window.addstr(HEIGHT/2, int(WIDTH/2.7), msg)


if __name__ == '__main__':
    make_it_rain(myscreen, TIME, 'IT HAS STOPPED RAINING!', 0.2, 100)
    myscreen.getch()
    curses.endwin()

Eu gravei o meu script com o nome de chuva.py
Compile, com o Python 2:

python2 chuva.py

Referências

http://codegolf.stackexchange.com/questions/107545/its-raining-in-terminal.