<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Michael Kwaku Aboagye</title>
    <description>The latest articles on DEV Community by Michael Kwaku Aboagye (@rev0kz).</description>
    <link>https://dev.to/rev0kz</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F134209%2Fa9cab638-8152-4f68-9083-a4cda3b83b8f.jpeg</url>
      <title>DEV Community: Michael Kwaku Aboagye</title>
      <link>https://dev.to/rev0kz</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rev0kz"/>
    <language>en</language>
    <item>
      <title>When to use SHA-256, MD5 and SSDeep..?</title>
      <dc:creator>Michael Kwaku Aboagye</dc:creator>
      <pubDate>Wed, 03 Jun 2020 02:37:21 +0000</pubDate>
      <link>https://dev.to/rev0kz/when-to-use-sha-256-md5-and-ssdeep-38pi</link>
      <guid>https://dev.to/rev0kz/when-to-use-sha-256-md5-and-ssdeep-38pi</guid>
      <description>&lt;p&gt;SHA-256, SSDeep and MD5 are all good and effective hashing algorithms used by forensic investigators to compute or calculate hash values for data objects such as files, special files and so on. &lt;/p&gt;

&lt;p&gt;In this article, we will explore three ways these algorithms can be of a good help to forensic investigators.  &lt;/p&gt;

&lt;h2&gt;
  
  
  Need to compute thousands of data objects hash values?
&lt;/h2&gt;

&lt;p&gt;Sometimes, forensic investigators need a tool to compute hash values of many files on a hard disk within the shortest possible time. &lt;/p&gt;

&lt;p&gt;In this case, we can rely on MD5 otherwise known as message digest algorithm to accomplish this task. MD5 produces 128-bit hash value. &lt;/p&gt;

&lt;p&gt;Although it is possible to generate two hash values from one input via MD5, MD5 algorithm is best suited if you want to compute hash values of many files or data objects very rapidly without wasting much time. &lt;/p&gt;

&lt;p&gt;In addition, it also saves disk space because it produces small hashes as compared to SHA-256.   &lt;/p&gt;

&lt;h2&gt;
  
  
  Need a collision-resistant algorithm?
&lt;/h2&gt;

&lt;p&gt;MD5 algorithm is not collision resistant. SHA-256 is able to deal with collision-resistant. In other words, attackers can not generate the same hash from a different input. &lt;/p&gt;

&lt;p&gt;SHA-256 is best suited for integrity verification. &lt;/p&gt;

&lt;p&gt;The only downside is: calculated hashes from SHA-256 is quite larger in size as compared to MD5 algorithm. &lt;/p&gt;

&lt;h2&gt;
  
  
  Need to examine similarities between two files?
&lt;/h2&gt;

&lt;p&gt;You can make use of SSDeep to examine similarities between two files and find the difference among files. &lt;/p&gt;

</description>
      <category>forensics</category>
      <category>software</category>
      <category>development</category>
      <category>ring3</category>
    </item>
    <item>
      <title>How Nameko makes microservice development less difficult.</title>
      <dc:creator>Michael Kwaku Aboagye</dc:creator>
      <pubDate>Thu, 14 Feb 2019 10:03:38 +0000</pubDate>
      <link>https://dev.to/rev0kz/how-nameko-makes-microservice-development-less-difficult-3fdi</link>
      <guid>https://dev.to/rev0kz/how-nameko-makes-microservice-development-less-difficult-3fdi</guid>
      <description>&lt;p&gt;Before I proceed with how  Nameko, a python framework makes microservice development, let have in mind that microservice is just another way developing software by building services or components separately from each other.   &lt;/p&gt;

&lt;p&gt;Assuming we have decided to build a Bus Ticketing System with the following components in mind: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Register &lt;/li&gt;
&lt;li&gt;Login(Reset) &lt;/li&gt;
&lt;li&gt;Email &lt;/li&gt;
&lt;li&gt;Billing&lt;/li&gt;
&lt;li&gt;Booking &lt;/li&gt;
&lt;li&gt;Notification&lt;/li&gt;
&lt;li&gt;Verification&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In a monolithic pattern, a team of software engineers would develop the following functions using a server-side language such as Ruby, Golang, Node.js or Python for all components. &lt;/p&gt;

&lt;p&gt;These components would all reside on each instance of web servers backed by a load balancer such as Nginx to prevent DDOS attack. &lt;/p&gt;

&lt;p&gt;However, in a microservice pattern, the structure is a bit different. These components could be developed with different server-side languages or frameworks.&lt;/p&gt;

&lt;p&gt;Nameko as a microservice framework has made it possible for software developers to implement services with ease with the help of dependency injection.   &lt;/p&gt;

&lt;p&gt;Dependency injection by Nameko allows software developers to separate code for external entities such as databases, Cached systems from the services code. &lt;/p&gt;

&lt;p&gt;For instance, the &lt;code&gt;register&lt;/code&gt; service and &lt;code&gt;login&lt;/code&gt; service could just call the &lt;code&gt;insert()&lt;/code&gt; function or &lt;code&gt;query()&lt;/code&gt; function from a  &lt;code&gt;mongodb&lt;/code&gt; or &lt;code&gt;postgres&lt;/code&gt; database.&lt;/p&gt;

&lt;p&gt;Also have in mind that both the &lt;code&gt;register&lt;/code&gt; service and &lt;code&gt;billing&lt;/code&gt; service may have a separate &lt;code&gt;postgres&lt;/code&gt; database to store users' details. &lt;/p&gt;

&lt;p&gt;This is how nameko make microservice development quite flexible for software engineers without the hustle of clustering services with the backend code.   &lt;/p&gt;

</description>
      <category>namekomicroservice</category>
    </item>
  </channel>
</rss>
