| 171 | |
| 172 | == Criptografia == |
| 173 | Para trafegar dados sigilosos entre navegador (cliente) e php (servidor) existe a classe rsa na API do Expresso. O funcionamento é como segue: |
| 174 | |
| 175 | 1- Quando o Expresso é carregado após o login é gerado um par de chaves (pública e privada) |
| 176 | |
| 177 | 2- A chave pública é iniciada como atributo da classe expresso.crypt |
| 178 | |
| 179 | 3- Para criptografar uma string de forma que o servidor entenda basta executar o método expresso.crypt.encode. |
| 180 | |
| 181 | 4- Na parte do servidor a chave privada está armazenada na sessão e poderá desfazer a criptografia. |
| 182 | |
| 183 | |
| 184 | Exemplos: |
| 185 | |
| 186 | No lado cliente (Javascript): |
| 187 | {{{ |
| 188 | <script> |
| 189 | password = expresso.crypt.encode(prompt(get_lang('Please, type archive password or leave it empty if it is not encrypted'))); |
| 190 | cExecute("operacao.enviasenha&senha="+password, handler); |
| 191 | </script> |
| 192 | }}} |
| 193 | |
| 194 | No lado do servidor PHP: |
| 195 | {{{ |
| 196 | require_once('phpgwapi/inc/class.rsa.inc.php'); |
| 197 | $rsa = new rsa(); |
| 198 | $senha = $rsa->decode($pswd); |
| 199 | }}} |