Вы можете использовать это, используя , если условие условие для динамического запроса
$results = DB::table('product_details')
if($request->title) {
$results->where("product_details.title", $request->title);
}
if($request->id) {
$results->where("product_details.id", $request->id);
}
$result->get();
РЕДАКТИРОВАНИЕ (2018): используйте NaCl или libsodium или TweetNaCl при поиске меньшего места кода. Они обеспечивают устойчивое шифрование и должны быть намного быстрее, чем RC4.
RC4 является очень простым алгоритмом для реализации.
Стерлинговая реализация Камдена выезда или реализация Adam Back.
См. проект ECRYPT eStream. Это серьезные жесткие криптографические алгоритмы, оцененные специалистами по безопасности. Насколько я знаю, что все алгоритмы кандидата потребовались, чтобы включать реализацию в чистый C (не C++).
править: Большая вещь о том веб-сайте - это, входит в большую глубину о различных алгоритмах, включая их известные слабые места, и включает сравнительные тесты производительности также.
Для чистого приложения POC можно быстро бросить ROT13 в место. http://en.wikipedia.org/wiki/ROT13
Однако я очень колеблюсь в создании предложения начиная со слишком часто простого кода POC, это предназначено, чтобы быть замененным, позже никогда не...
Я получил Шифр, обходящийся без помощи большой проблемы. Это утверждает, что было быстрее, чем DES.
Вот чрезвычайно базовое внедрение поточного шифра в C. Это не, каким-либо образом предназначено, чтобы быть безопасным. Это просто иллюстрирует, как выполнить основные требуемые шаги.
В реальном волшебстве нужно выполнить CycleKey
функция, которая генерирует новые значения ключа как каждый блок данных, передается через поток шифрования.
Этот пример шифрует тот char
за один раз. Необходимо было бы расширить понятие до больших блоков данных для шифрования, чтобы быть в какой-либо степени безопасными. Еще раз я сделал это просто для иллюстрирования основных шагов.
Удача с проектом!
#include <stdio.h>
char staticKey;
void CycleKey(char data)
{
/* this is where the real magic should occur */
/* this code does *not* do a good job of it. */
staticKey += data;
if (staticKey & 0x80)
{
staticKey ^= 0xD8;
}
else
{
staticKey += 0x8B;
}
}
void ResetCipher(const char * key)
{
staticKey = 0;
while (*key)
{
CycleKey(*key);
key++;
}
}
void Encrypt(const char * plaintext, char * encrypted)
{
while (*plaintext)
{
*encrypted = *plaintext + staticKey;
CycleKey(*encrypted);
encrypted++;
plaintext++;
}
*encrypted = '\0';
}
void Decrypt(char * plaintext, const char * encrypted)
{
while (*encrypted)
{
*plaintext = *encrypted - staticKey;
CycleKey(*encrypted);
plaintext++;
encrypted++;
}
*plaintext = '\0';
}
int main(void)
{
char * key = "123";
char * message = "Hello, World!";
char encrypted[20];
char decrypted[20];
ResetCipher(key);
Encrypt(message, encrypted);
ResetCipher(key);
Decrypt(decrypted, encrypted);
printf("output: %s\n", decrypted);
return 0;
}
Вы посмотрели на OpenSSL? Это имеет безопасную реализацию большого количества криптографических алгоритмов и примитивов. Вы не должны использовать его ни с чем связанная сеть. Однако это не действительно хорошо зарегистрировало или легкий учиться. Если Вы заботитесь много о безопасности (например, если Вы храните данные частного пользователя, такие как кредитные карты), необходимо определенно использовать OpenSSL или некоторую другую безопасную реализацию вместо того, чтобы прокрутить собственное.