Как зашифровать строку без mcrypt библиотеки в php

Минимальное решение, которое вы хотите, действительно существует в базе R.

Рассмотрим эти данные.

> head(dat, 3)
  Categories time.a time.b.
1  Category1  98.59   90.05
2  Category2 133.10  150.26
3  Category3  22.04   75.15

Участок:

barplot(t(dat[-1]), beside=TRUE, ylab="time")

Доходность

enter image description here [119] [1115 ]

Затем вы можете уточнить его, как хотите, например,

rownames(dat) <- 1:10
barplot(t(dat[-1]), beside=TRUE, xlab="Categories", ylab="time", col=2:3)
legend("topleft", c("time a", "time b"), col=2:3, pch=15)

, что дает

enter image description here

Данные

dat <- structure(list(Categories = structure(c(1L, 3L, 4L, 5L, 6L, 7L, 
8L, 9L, 10L, 2L), .Label = c("Category1", "Category10", "Category2", 
"Category3", "Category4", "Category5", "Category6", "Category7", 
"Category8", "Category9"), class = "factor"), time.a = c(98.59, 
133.1, 22.04, 10.24, 17.12, 78.21, 115.41, 76.84, 176.09, 73.02
), time.b. = c(90.05, 150.26, 75.15, 7.07, 1.85, 49.03, 7.41, 
152.89, 139.64, 90.98)), class = "data.frame", row.names = c(NA, 
-10L))

5
задан Barry Wark 29 April 2009 в 05:37
поделиться

2 ответа

Этот код довольно неэффективен, я не удивлен, что он не дает ожидаемых результатов.

echo RotEncrypt('cheese', 'pie') . "\n<br>\n"
    .RotDecrypt(RotEncrypt('cheese', 'pie'), 'pie');
// ÓÑÊÕÜÊ
// cheese

function RotEncrypt($str, $pass){
   $pass = str_split(str_pad('', strlen($str), $pass, STR_PAD_RIGHT));
   $stra = str_split($str);
   foreach($stra as $k=>$v){
     $tmp = ord($v)+ord($pass[$k]);
     $stra[$k] = chr( $tmp > 255 ?($tmp-256):$tmp);
   }
   return join('', $stra);
}
function RotDecrypt($str, $pass){
   $pass = str_split(str_pad('', strlen($str), $pass, STR_PAD_RIGHT));
   $stra = str_split($str);
   foreach($stra as $k=>$v){
     $tmp = ord($v)-ord($pass[$k]);
     $stra[$k] = chr( $tmp < 0 ?($tmp+256):$tmp);
   }
   return join('', $stra);
}

Протестирован и, кажется, работает нормально для меня.

В любом случае, я чувствую, что Следует предупредить вас, что это действительно небезопасная форма шифрования, большинство паролей используют одинаковые наборы символов и довольно небольшой диапазон длин, что делает эту систему очень уязвимой для людей, способных работать с довольно хорошим уровнем точности. пароль.

5
ответ дан 18 December 2019 в 09:53
поделиться

Вот еще один метод:

$key = 'the quick brown fox jumps over the lazy ';
$string = 'Hey we are testing encryption';

echo enc_encrypt($string, $key)."\n";
echo enc_decrypt(enc_encrypt($string, $key), $key)."\n";

function enc_encrypt($string, $key) {
    $result = '';
    for($i = 0; $i < strlen($string); $i++) {
        $char = substr($string, $i, 1);
        $keychar = substr($key, ($i % strlen($key))-1, 1);
        $char = chr(ord($char) + ord($keychar));
        $result .= $char;
    }

    return base64_encode($result);
}

function enc_decrypt($string, $key) {
    $result = '';
    $string = base64_decode($string);

    for($i = 0; $i < strlen($string); $i++) {
        $char = substr($string, $i, 1);
        $keychar = substr($key, ($i % strlen($key))-1, 1);
        $char = chr(ord($char) - ord($keychar));
        $result .= $char;
    }

    return $result;
}

Опять же, не ожидайте, что это будет очень безопасно.

7
ответ дан 18 December 2019 в 09:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: