Posts

Threats to Information Security and What the Hash you could do about it

Image
http://www.mfbzone.com/img/my%20pages/information.png What are Hash Functions? A cryptographic hash functions is a mathematical formula that helps you convert a given value to another value that is of a fixed length and is irreversible. The result is much smaller than that of the original input to the function and are comparatively faster (unlike in using cipher techniques). A good hash function will never result give the same result for two distinct inputs; even if a bit is changed the whole hash value changes (avalanche effect). I mentioned that hash functions are faster compared to ciphers. But they shouldn't be able to compute too quickly either, which may result in the function being labeled as brittle. These attributes of hash functions allows them to be used in multitude of real-world use cases like, Integrity protection in messages and software  Hashing the certificate in HTTPS Digital signature Creating database indexes https://cdn.auth0.com/blog/hashi

What the Hash. A Simple Guide to Hashing

Image
What is Hashing Hashing, plainly put is using hardcore mathematics to increase security on some "message". Hashing is a procedure that takes a variable length value as input and spits out a fixed length hashed value as output, also known as a hash, digest or thumbprint depending on the scenario the hashing is used in. This procedure is irreversible in a more general sense, but we can use some special procedures to understand the input value (more on that later). And most importantly, no two different inputs can produce the same output. The image below gives you a quick look at what I just blabbered. Why Hashing Now let's look at a practical example. Imagine a user registration and login scenario.  User enters his/her new credentials and clicks register which posts this username and password to the server. Server grabs the password and sends it through a hash function ( SHA256 in this case) and gets the hashed password in return. Server then stores th

EclEmma - A Structural Code Coverage Tool

Image
Code coverage analysis is a structural testing technique (AKA glass box testing and white box testing), which tests a program’s behavior against the intention of the examines how the program works (source code), taking into account possible pitfalls in the structure and logic. Code coverage analysis is the process of finding areas of a program not exercised by a set of test cases, creating additional test cases to increase coverage, and determining a quantitative measure of code coverage, which is an indirect measure of quality. EclEmma is a free Java code coverage tool for Eclipse, available under the Eclipse Public License. It’s an Eclipse plug-in that generates code coverage reports and provide simple trace information about test cases. It launches from within the workbench like JUnit test runs can directly be analyzed for code coverage. For small programs, coverage is relatively easy to calculate by hand; however, for larger programs, the task is much more difficult. Cover

A Video Lending System (Throwback)

Image
This Video Lending System (Flixstore) was developed by a group of 4 members for the subject module Software Technology II in Sri Lanka Institute of Information Technology, in the 2nd Year 1st Semester, in 2016. This was fully developed in Java and backed by MySQL as the Database and iReport for generating various reports for the desktop application. We developed this with very less knowledge in OOP Concepts and Layered Architecture. We learned them day by day and improved as much and applied as much of the concepts as we could and as suited. I was the group leader and was assigned to develop several modules for the application including the Administrative system of the application, Login and such.  Admin's Dashboard: Order Processing:   Report Generation:  Search Movies:  Add Movies:

An Algorithm Simulator

Image
An algorithm is a step-by-step set in instructions to perform an operation. There are multitude of algorithm types used for sorting, compression, routing and so on. Here I have taken two of the Sorting algorithms into consideration. Namely, Selection Sorting and Bubble Sorting. This Algorithm simulation application will work as an e-Learning tool for beginners for the algorithm genre. This application will allow the user to input integer values and show how the two specific sorting algorithms will do the sorting. Selection sort is one of the simplest algorithms available, where the sorted part is at the left end, and the unsorted part is at the right. Initially the sorted part is empty and the unsorted part is the entire array. Smallest element is selected from the unsorted array and swapped with the leftmost element and that element becomes part of sorted array. This process continues moving unsorted array boundary by one element to the right. This algorithm is not suitable for large

Robotic Process Automation a.k.a RPA

Image
Robotic Process Automation also known as RPA in the community is a new Technology on the rise, which uses so called "Bots" to get mundane (or sometimes heavy logical) tasks done, (with) or without any Human Intervention.  Many industry giants are on the verge of breakthrough and some have already achieved the targeted technology namely Accello (by Virtusa Polaris), Blue Prism and Accenture. Software Robots  A software 'robot' is a software application that replicates the actions of a human being interacting with the user interface of a computer system. For example, the execution of data entry into a SAP system - or indeed a full end-to-end business process - would be a typical activity for a software robot. The software robot operates on the  user interface  (UI) in the same way that a human would; this is a significant departure from traditional forms of IT integration which have historically been based on  Application Programming Interfaces  (

A School Management System

Image
A School Management System This is about the time when we (a group of 8 members) had to create a full-fledged Desktop application as a project in our 2nd Year 2nd Semester Module (ITP) at the Sri Lanka Institute of Information Technology.  The proposed software product is a School Management System, aimed to eliminate the manual workload that is the school’s current system. The manual system comprises of spreadsheets and mainly record books which is inefficient, prone to errors, time consuming, difficult to handle and hard to maintain, thereby has increased the expenses of the school drastically.  The eight major functionalities (developed by the 8 members) outlined to be performed are listed as follows: Student Management System  Staff Management and Payroll System  Attendance Management System  Library Management System  Inventory Control System  Performance Handling System  Scheduler System  Administrative and Communication System  Login: Dashboard: