Fuzzy keyword search over encrypted data

July 2020 updated
In this tutorial, we will see how to setup the project for – Fuzzy keyword search over encrypted data in cloud computing.
We will start with the meaning along with the practical example.

To learn basics of PHP you can read this short tutorial: PHP Tutorial

Live Project Demo: https://github.webencyclop.com/EKS/

1. What is fuzzy keyword search over encrypted data?

  • Fuzzy search means approximate string matching
  • For example: languaje is misspelled word which will matched actually with correct word language

Use case scenario

  • Suppose a User wants to search a keyword language
  • But User misspelled it as languaje and clicked on search button
  • Data in the database is in encrypted form.
  • Now we will try to search the encrypted data for inputted keyword languaje.
  • So in this project we have generated the process of matching misspelled keyword with encrypted data
  • We have used different algorithms like N-Grams creation, Jaccard coefficient calculation and encryption techniques.
  • So, let us see how we can understand and setup the project

2. Project flow as explained in this YouTube video

Workflow - Fuzzy keyword search over encrypted data in cloud computing project

3. Different Algorithms used in project as explained in this YouTube video

  • Encryption/Encoding techniques: Base64 encode and decode, AES-256 encryption and decryption
  • Algorithm for N-gram calculations. EKS/application/libraries/ngram.php
  • Algorithm for Jaccard Coefficient calculation. EKS/controllers/user.php (in search function)

Technologies used in project

  • PHP [must use older versions 5.2 preferably]
  • MySQL Database
  • CodeIgniter PHP MVC Framework
  • HTML and CSS

Installing and configuring project.

  • Step 1 – Install wamp server or XAMP server with older PHP version.
  • Start wamp/XAMP server
  • Turn on rewrite_module in WAMP or XAMP server.
  • Download the project file EKS.zip from GitHub click here to download
  • Extract the folder EKS to C:/wamp/www or your HTML directory. [It should be like : C:/wamp/www/EKS/*all_files*]
  • Now open http://localhost/phpmyadmin/ in browser. [You need PHPMyAdmin]
  • Click import tab and browse file eks.sql from C:/wamp/www/EKS/1Database/eks.sql and click go. Now you have imported database for project
  • Now open http://localhost/EKS/ in browser.
  • Default user account: username: [email protected] password: 1234567890
  • Default admin account: username: admin password: 1234567890
  • Explore the project !! That’s it.

The project database stores everything in encrypted form and actual file stored on server is also encrypted.

Video demonstration to explain the installation and configuration of project for the Fuzzy keyword search over encrypted data in cloud computing:

Fuzzy Keyowrd Search – Project Explaination – part 1

Fuzzy Keyowrd Search – Project Setup – part 2

You can leave the comment below if you have any problem regarding the project or feel free to mail me at [email protected] for the same. Please do not use this project as a college or university project without notifying me. 🙂

Help others by sharing the content!

Install MongoDB on windows

Install MongoDB 4.2.0 on windows

Follow the below steps to configure MongoDB on your system.

Step 1) To install MongoDB 4.2.0 on windows or on your computer, just go to MongoDB official site or you can click below link to redirect
Installing MongoDB 4.2.0 on windows

Step 2) From above link you will get to below page.

Step 1 to download/install and configure mongodb

Select the Operating system as Windows

step 2 to download/install and configure mongodb

Select the package as MSI and click to Download to start downloading.

Step 3 to download/install and configure mongodb

Step 3) Now you will get to this page. Enter your mail, name, password and check the Terms and condition box. And click on the Get started free button.

step 4 to download/install and configure mongodb

Step 4) Once completing download click on it and you will get following pop-up. Click on Next button

step 5 to download/install and configure mongodb

Step 5) Check the Licence terms agree button

step 6 end user licence agreement

Step 6) Choose the setup type as Complete

step 5 choose setup type of mongodb

Step 7) Keep the run service as network service user and click to Next button

step 6 service as network user

Step 8) The next thing you need to do is tick the Install MongoDB compass checkbox and click Next button

step 7 install mongo db compass

Step 9) Now you are ready to install. Click Install button.

step 8 ready to install mongo db

Step 10) Below kind of installing will happen.

step 9 installing/downloading mongo db

Step 11) After completing the process, you will get following pop-up. Scroll down and click on Agree button

step 10 mongoDB compass community connect

Step 12) After you agree, it will give some intro. Just continue clicking Next upto below Get started button can see.

step 11 welcome to mongodb commuity server

Step 13) You can either keep it enable or unchecked to disable. I uncheck it as I don’t want to automatic updates nor any kinfd o report. After this click Start using compass button

step 12 privacy setting mongodb

Step 14) Now you are ready to use MongoDB.

Help others by sharing the content!

How to start free blog or website using WordPress

You might have already gone through lot of articles and blog posts for How to start free blog.
And you might have already heard about WordPress.com or blogger etc. But here we are not looking for this, because as a free blog, these services won’t provide custom domain name of your choice or they don’t provide https access to your blog. For these kind of features these services will ask for paid plan.

But here in this video, we will see, how to setup a blog with custom domain name and HTTPS access completely free. You don’t need to pay any money for starting your blog. You can even start showing advertisements on your blog and statrt earning money, without any investment. The blog you are currently reading, is running free of cost. So you can also start your blog as me.

What will come in this free blog?

  1. WordPress installation on server
  2. Free HTTPS access to your blog. (People nowdays prefer HTTPS over HTTP)
  3. Custom domain name of your choice.
  4. Access to CloudFlare utilities which will give you more control on your blog.

Follow the simple tutorial

Help others by sharing the content!

Run Multiple WordPress Sites on Sub Domains with Single Server

Multiple WordPress Installations on Sub Domains

When it comes to blogging, lot many of us will choose WordPress as a blogging platform because of it’s versatility and ease of use. But when the WordPress platform is self managed (i.e. hosted and installed WordPress manually on server), there can be
many complications related to installations, domain mapping, and managing .htaccess files specially when there are multiple WordPress installations on same server. So, this post will help to setup sub-domain mapping to multiple WordPress installations
on single server.

There are many ways for achieving this functionality like using  .htacess file or using apache2 hosts configurations. In this post we will see the best option where we will Run Multiple WordPress Sites on Sub Domains using apache2 host configuration.
Whenever request comes to server, it will first go to Apache2 and then to .htaccess, if you use .htaccess, it will consume some microseconds and might delay server response. So it’s better to map subdomain requests in apache2 configuration itself.

Note: This is not equivalent to redirecting http://www.example.com/post1 to http://www.example.com/post1-actual. You can use redirection plugin for that purpose.

Resources used:

Instructions file View
Image file View
GoDaddy configurations file View


1. You must be using Apache2 as server.
2. You need to have root access to your server so that we can make changes to apache2 configuration files.
3. You must have setup subdomain to point to server IP address.
Please check video for more details.

1. Login to Server using SSH and Enable rewrite module:

You can login into the server using SSH, with user having root access so that user can run sudo commands. Execute below command:

2.find apache2 virtual host configuration file:

Next step is to find the Apache2 virtual host configuration file. Note down the location for further steps. For Ubuntu 16.04 with Apache2 below will be default location:

3. Edit default virtual host file : 000-default.conf:

This file is present at location we have found for apache2 virtual host configuration. Execute below command to open file using nano editor:

3. Modify 000-default.conf

Modify the content for tag
, as below:

4.Restart apache2 server and Done!!

Execute below command to restart apache2 server.

You have mapped test1 sub-domain to test1 sub-directory

5. Now map test2 sub-domain to test2 folder:

  • 1. Navigate to nano /etc/apache2/sites-available/
  • copy 000-default.conf as test2.conf
  • Edit test2.conf file
  • Then add the following code to virtual host definition:

    6. Run below command :

    Execute below command:

    7. Restart server, Done!!

    Execute below command:

    You have mapped test2 sub-domain to test2 sub-directory

    So, this is how you can map two separate WordPress installations to different domains.

    Help others by sharing the content!

    Blogging with Medium or WordPress – How to make a choice?

    Blogging with Medium or WordPress – How to make a choice?

    Blogging with Medium or WordPress - How to make a choice?

    It started when one of my friends (co-founder of QuodeIt), insisted on trying Medium for blogging due to its readability, beautiful UI, better community interaction, great SEO and built-in analytics. And to my surprise it took not more than 30 minutes to shift the entire WordPressblog to Medium. You can really feel the ease of use as you start using Medium. But the real question arises here, should a publisher continue using Medium or stick to WordPress? Lets take a look:

    The main aim of publishing content is to reach to the huge number of audience and increase the visitors traffic. Medium fulfills this requirement efficiently. It provides you The Medium Audience which is missing in self hosted blog. But now, lot of people have started using Medium, so it might be harder to get your contents read, recommended or shared.

    Again, readability is one of the strongest points of Medium. It has a clean white UI throughout all of its pages with exquisite fonts which can get users more interested in the content on your blog. It has also redefined the traditional way of commenting, liking the story which can surely maintain visitors’ interest in your blog and make them stay for longer on your blog!

    Now you can get your own custom domain for medium blog, that too for free! Means you can have that Medium blog on your own domain similar to self hosted WordPress blog. But all of the content on your blog belongs to stored at Medium. Still no need to worry about it, as one click export of all articles will come to your rescue.

    On other hand, self hosted WordPress is capable doing almost everything a Medium blog can do and even lot more, if you possess the proper set of themes and plugins. WordPress gives more room for flexibility since there are simply more options to choose from. Meaning more control over the blog and its content. In this regard WordPress is superior product because it’s meant to be a framework, not just a writing platform. But with great flexibility comes the complexity. It will be quite complicated & time consuming to set up WordPress first and then using it compared to Medium.

    So, the choice depends on how you want use it.

    If you are an author, and the sole motive is reach out to the majority of audience with ease by focusing on content writing rather than focusing on blog utilities. Clearly Medium is the best option!

    If you have your own site or product and need a blog for content marketing, you are going to need more customization, more flexibility and more control over the blog and its content, than an author. Then WordPress is the only better option. But no one has stopped you from republishing your posts on Medium and reach out to more number of audience! As content marketing is the main aim, than increasing the traffic at your blog!

    Ultimately the choice depends upon the purpose of use!!! But Medium will always be there either as a primary or a secondary way for publishing!!

    Help others by sharing the content!

    Material Design vs Non Material Design – Web Designing Dilemma

    Material Design vs Non Material Design – Web Designing Dilemma

    When it comes to design a web based application, most of the designers have to think whether to go with the Non Material Design using well established and stable frameworks like Foundation or Bootstrap, the Material Design with new frameworks like Google MDL, Angular Material. But there are few points worth noting before starting with some designing strategy.

    Foundation and Bootstrap are two of my personal favorite frameworks for designing web based applications. But from the last few months, we are working on material design using Angular Material. The decision was just because Foundation & Bootstrap don’t have an official Angular port and we haven’t tried the Material Design Strategy yet.

    As we started developing with material design, we found that it’s not just a design, it’s an art of simulating real world objects inside the browser and to make it happen, it follows strict guidelines and design constrains. Material Design is not just about using material frameworks, it’s about implementing the the Material Design Concept into your application. For example just implementing a FAB button does not turn your application or site into Material Design, rather this Floating Action Button (FAB) is a very distinctive Material Design UI element and it should be used only for the key action in the application, that is the real design constraint.

    This material UI looks cool, as it provides out of the box UI components for use and implements the real world objects. It also comes with built in animations that eliminates overhead of handling it. UI looks fantastic. But definitely “NOT” easier to use than non-material design (as opposed to many people think) – the reason being – we are using non material design since long time and are well familiar with it, while Material Design is quite new. It also uses animations, not all systems are be able to pull off the intended frame-rates. And it can be hard to know what, if anything, you can do to improve usability for those who can’t. One of the many reasons, people don’t prefer Bootstrap much, is because of it’s uniform look and feel. The same thing is with the Material Design, as it is inextricably tied to Google and will look similar to Google sites and apps. So if you want to distance yourself from the crowd, and create a unique identity for your site, it will be a hard task.

    On other hand, we have mature, stable frameworks like Foundation and Boostrap that enables you to quickly design site which are less resource-intensive, and produce shorter loading times and much smoother experience even on mobile devices, thanks to mobile first design approach. And the most important thing, people are familiar with these sites and hence it’s easier to portray the contents in easiest possible way. For developers, these frameworks can be easily installed with front-end dependency management tool like Bower and are available as SASS that helps faster development and makes developer’s life easier.

    So now we have, non-material design strategy on one side, which focuses more on usability than aesthetic component, which has more lightweight design, more stable and mature frameworks and focuses on content than visual attraction and are extremely mobile friendly. On other hand we have material design, which provides an elegant minimalist look of design, focuses on simulating real world objects using shadows and motions with which you can definitely show-cast your creativity and thoughts.

    Ultimately the choice is yours, whether you want to go the usual, easier way or the better, difficult way!!

    Help others by sharing the content!

    Install SSL on windows localhost WAMP HTTP & SSL HTTPS

    This tutorial will demonstrate how to install SSL certificate in Windows localhost WAMP server.
    Install SSL on windows localhost WAMP HTTP & SSL HTTPS

    Lot many times our production servers are installed with SSL certificates and our local development machines uses normal http, and this makes our development system different from our production one. And as a developer we always like to have an exact environment like our production system.

    If you are not able to convert WAMP server icon to green, you can check this video.

    So here’s the guide how to install self signed SSL certificate on the local WAMP installation and use Https communication with your local WAMP.

    Resources used in tutorial:

    File with all commands Download

    Here are the things we are going to do

    1. Download & install WAMP (Assuming that WAMP is installed in C: drive)
    2. Download & install OpenSSL
    3. Configure WAMP to use HTTP + SSL = HTTPS

    If you want to run multiple WordPress installations on single server with sub-domain, you can check this video on Apache 2 sub domain mapping.

    Watch the video tutorial to know about the detailed step by step procedure.

    Ste by step process for making HTTPS enabled WAMP | HTTP+SSL=HTTPS

    Step 1:

    Download & install WAMP (Assuming that WAMP is installed in C: drive)

    Step 2:

    Download & install OpenSSL

    Step 3:

    Configure WAMP to use HTTP+SSL=HTTPS

    Step 4:

    Step 5:

    CMD in Path to openssl.exe :::

    Now copy the privateKey & certificate into folder

    Step 6:

    Open httpd.conf & uncomment following

    Open php.ini (wampbinphpphp5.5.12php.ini)

    Step 7:

    Edit C:/wamp/bin/apache/apache x.x.x/conf/extra/httpd-ssl.conf

    Step 8

    Now check the syntax of file using below command.

    Want to buy me a beer?

    [wpedon id=2805]

    Help others by sharing the content!