Ana içeriğe atla

C# ile Password Manager

Arkdaşlar size bugun C# ta basit seviye mantık olarak nasıl Password Manager yapıldıgına dair kodları buraya ekleyeceğim, umarım faydası olur. Arkadaşlar paylasaşacagım kodlar henuz tam bir password manager işlemi yapmamakta sadece mantıgını kavramaya yetecek şekilde çalışmaktadır şuanlık. Kategori eklemek ve girdiğiniz şifreyi md5 ile şifreleyerek gride ekliyoruz. İsteyenler gizli biyere ekleyebilir.Kolay gelsin , kodlu günler :)




****KATEGORİ CLASS***********
 
 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace PasswordManager
{
   public class Kategori
    {
        public string Name { getset; }
        public string Password { getset; }
        public string Hash { getset; }
       
    }
}
 
 
************OPERATİONS CLASS********
 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Security.Cryptography;
//using System.Security.Cryptography.MD5;
 
namespace PasswordManager
{
   public class Operations
    {
 
       User usr = new User();
   
 
 
 
       public User Login(string name,string pass)
       {
          
           usr.UserName = "user";
           usr.Pasword = "123";
 
 
           if (usr.UserName== name && usr.Pasword==pass)
           {
               return usr;
           }
           else
           {
               
               return null;
           }
 
       }
 
 
 
 
       public Kategori Sifrele(string veriName,string _password)
       {
           MD5 md5 = System.Security.Cryptography.MD5.Create();
               byte[] veriBytes = System.Text.Encoding.ASCII.GetBytes(_password);
               byte[] hash = md5.ComputeHash(veriBytes);
 
               StringBuilder sb = new StringBuilder();
 
               for (int i = 0; i < hash.Length; i++)
               {
                   sb.Append(hash[i].ToString("X2"));
               }
 
              
            
               Kategori kt = new Kategori();
              
 
               kt.Name = veriName;
               kt.Password = _password;
               kt.Hash = sb.ToString();
 
             
 
               return kt;
 
       }
 
 
 
 
    }
}
 
 
 
 
****************  USER CLASS  **********************
 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace PasswordManager
{
   public class User
    {
        public string Mail { getset; }
        public string UserName { getset; }
        public string Pasword { getset; }
 
      
      
 
    }
}
 
 
 
********** MAIN WINDOW.CS *********
 
 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
 
namespace PasswordManager
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
       
 
        
        
        public MainWindow()
        {
            InitializeComponent();
 
        }
 
        private void Button_Click(object sender, RoutedEventArgs e)
        { 
            Operations op = new Operations();
            
            try
            {
                if (!string.IsNullOrEmpty(TextBoxKullanici.Text) && !string.IsNullOrEmpty(TextBoxSifre.Text) && !string.IsNullOrWhiteSpace(TextBoxKullanici.Text) 
                    && !string.IsNullOrWhiteSpace(TextBoxSifre.Text) && TextBoxKullanici.Text.Length>0 && TextBoxSifre.Text.Length>0)
                {
                    var deger = op.Login(TextBoxKullanici.Text.Trim(), TextBoxSifre.Text.Trim());
                    if (deger!=null)
                    {
                        Window1 win1 = new Window1();
                        win1.Show();
                        this.Hide();
                        MessageBox.Show("Lütfen her şifreleme işleminde tek bir Kategori seçiniz yoksa işleminiz yapılmayacaktır.");
 
                    }
                    else
                    {
                        MessageBox.Show("Giriş Bilgileriniz Hatalıdır "+PasswordBox.TextInputEvent);
                    }
                }
            }
            catch (Exception ex)
            {
                
                throw ex;
            }
 
           
        }
    }
}
 
 
 
 
*************** WINDOW1.CS *******************  // Yeni Formumuz
 
 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.Security.Cryptography;
using System.Security;
 
//using System.Security.Cryptography.MD5;
 
namespace PasswordManager
{
    /// <summary>
    /// Interaction logic for Window1.xaml
    /// </summary>
    public partial class Window1 : Window
    {
        List<string> catList = new List<string>();
        List<Kategori> categories = new List<Kategori>();
 
        public Window1()
        {
            InitializeComponent();
            //DataGridSifreler.ItemsSource = new List<Kategori>() { new Kategori() { Name = "test", Password = "123", Hash = "123" } };
         
            InitalPopulatePanel();
 
            PopulatePasswordPanel();
 
           
            
        }
 
        private void InitalPopulatePanel()
        {
            InsertCategory("Facebook");
            InsertCategory("Twitter");
            InsertCategory("LinkedIn");
 
        }
 
       
 
 
        private void PopulatePasswordPanel()
        {
            for (int i = 1; i <= catList.Count; i++)
            {
 
                CheckBox ch1 = new CheckBox();
              
 
                if (i == 0)
                {
                    ch1.Content = catList[i];
 
                    KategoriPanel.Children.Add(ch1);
                }
                else
                {
                    ch1.Content = catList[i-1];
 
                    KategoriPanel.Children.Add(ch1);
 
                }
            }
        }
 
        private void InsertCategory(string catName)
        {
            catList.Add(catName);
        }
 
 
        private void Button_Click(object sender, RoutedEventArgs e)  // Kategori Ekle Butonu  
        {
            InsertCategory(TextBoxKategori.Text);
            PopulatePasswordPanel();
 
            KategoriPanel.Children.RemoveRange(0100);
            PopulatePasswordPanel();
            TextBoxKategori.Clear();
               // DataGridSifreler.ItemsSource = null;
        }
 
 
        private void ButonSifrele_Click(object sender, RoutedEventArgs e)
        {
            DataGridSifreler.AutoGenerateColumns = false;
 
            Operations on = new Operations();
            DataGridSifreler.ItemsSource = null;
 
            foreach (var i in KategoriPanel.Children)
            {
                try
                {
                   
 
                    bool cek = (i as CheckBox).IsChecked.Value;
                    string cekName = (i as CheckBox).Content.ToString();
 
                  
 
                    if (cek == true)
                    {
                        var gelenVeri = on.Sifrele(cekName, TextBoxCrypto.Text);
                        categories.Add(gelenVeri);
 
                        DataGridSifreler.ItemsSource = categories;
 
                        TextBoxCrypto.Clear();
                    }
                }
                catch (Exception)
                {
                    
                    throw;
                }
 
               
            
            
            }
 
 
            //var gelenVeri = on.Sifrele(TextBoxKategori.Text, TextBoxCrypto.Text);
            //categories.Add(gelenVeri);
 
            //DataGridSifreler.ItemsSource = categories;
 
 
        
 
           
            
 
 
        }
 
        private void ButonTemizle_Click(object sender, RoutedEventArgs e)
        {
            DataGridSifreler.ItemsSource = null;
        }
 
      
 
       
 
    }
}
 
 
 
 
 
 
***********************   MAIN WINDOW XAML ***********************
 
<Window x:Class="PasswordManager.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="PasswordManager" Height="350" Width="304.166">
    <Grid HorizontalAlignment="Left" Width="294" Background="#FF4F4F4F">
        <Label Name="LabelHosgeldin" Content="Hosgeldiniz" HorizontalAlignment="Left" Margin="79,0,0,0" VerticalAlignment="Top" RenderTransformOrigin="1.677,0.383" Width="129" FontWeight="Bold" FontSize="20" FontStyle="Italic" Foreground="#FFFFCDCD"/>
        <Label Name="LabelParola" Content="Parola" HorizontalAlignment="Left" Margin="0,151,0,0" VerticalAlignment="Top" RenderTransformOrigin="0.428,-0.071" FontSize="18" FontWeight="Bold" Width="100"/>
        <GridSplitter HorizontalAlignment="Left" Height="295" Margin="123,-77,0,0" VerticalAlignment="Top" Width="48" RenderTransformOrigin="0.5,0.5" Background="#FF854F4F">
            <GridSplitter.RenderTransform>
                <TransformGroup>
                    <ScaleTransform/>
                    <SkewTransform AngleY="-0.023"/>
                    <RotateTransform Angle="89.629"/>
                    <TranslateTransform X="-0.01"/>
                </TransformGroup>
            </GridSplitter.RenderTransform>
        </GridSplitter>
        <Label Name="LabelKullanici" Content="Kullanıcı Adı" HorizontalAlignment="Left" Margin="0,106,0,0" VerticalAlignment="Top" Width="109" FontWeight="Bold" FontSize="16"/>
        <TextBox  Name="TextBoxKullanici" HorizontalAlignment="Left" Height="31" Margin="129,106,0,0" TextWrapping="Wrap"  VerticalAlignment="Top" Width="138" RenderTransformOrigin="0.493,0.548" Background="#FFFBFBFB"/>
        <Button Content="Giriş Yap" HorizontalAlignment="Left" Margin="161,190,0,0" VerticalAlignment="Top" Width="75" Click="Button_Click"/>
        <GridSplitter HorizontalAlignment="Left" Height="297" Margin="120,105,0,-83" VerticalAlignment="Top" Width="55" RenderTransformOrigin="0.5,0.5" Background="#FF874B4B">
            <GridSplitter.RenderTransform>
                <TransformGroup>
                    <ScaleTransform/>
                    <SkewTransform AngleY="0.086"/>
                    <RotateTransform Angle="-90.111"/>
                    <TranslateTransform X="0.028"/>
                </TransformGroup>
            </GridSplitter.RenderTransform>
        </GridSplitter>
        <Button Name="ButonRegister" Content="Register ?" HorizontalAlignment="Left" Margin="25,289,0,0" VerticalAlignment="Top" Width="75"/>
        <Button Name="ButonSifreUnuttum" Content="Sifre'mi Unuttum" HorizontalAlignment="Left" Margin="161,289,0,0" VerticalAlignment="Top" Width="101"/>
        <TextBox  Name="TextBoxSifre" HorizontalAlignment="Left" Height="34" Margin="129,151,0,0" TextWrapping="Wrap"  VerticalAlignment="Top" Width="138"/>
    </Grid>
</Window>
 
 
 
 
 
*************  WINDOW1 XAML *********************
 
<Window
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors" xmlns:dxca="http://schemas.devexpress.com/winfx/2008/xaml/carousel" x:Class="PasswordManager.Window1"
        Title="PasswordManager" Height="377" Width="642">
    <Grid Margin="0,0,2,-3" Background="#FF535151">
        <StackPanel Name="KategoriPanel" HorizontalAlignment="Left" Height="182" VerticalAlignment="Top" Width="100" Margin="0,35,0,0">
 
 
        </StackPanel>
        <Button Name="ButonKategoriEkle" Content="Kategori Ekle" HorizontalAlignment="Left" Margin="19,306,0,0" VerticalAlignment="Top" Width="111" Click="Button_Click"/>
        <TextBox Name="TextBoxCrypto"   HorizontalAlignment="Left" Height="24" Margin="214,10,0,0" TextWrapping="Wrap"   VerticalAlignment="Top" Width="120"/>
        <Label Name="LabelSifreSec" Content="Sifre" HorizontalAlignment="Left" Margin="169,13,0,0" VerticalAlignment="Top" FontWeight="Bold"/>
        <Button Name="ButonSifrele" Content="Şifrele" HorizontalAlignment="Left" Margin="356,10,0,0" VerticalAlignment="Top" Width="75" Click="ButonSifrele_Click"/>
        <TextBox Name="TextBoxKategori" HorizontalAlignment="Left" Height="23" Margin="10,278,0,0" TextWrapping="Wrap"  VerticalAlignment="Top" Width="134"/>
        <DataGrid AutoGenerateColumns="False"   Name="DataGridSifreler" HorizontalAlignment="Left" Margin="169,39,0,0" VerticalAlignment="Top" Height="197" Width="325">
            <DataGrid.Columns>
                <DataGridTextColumn Header="Name" Binding="{Binding Name, Mode=TwoWay}" />
                <DataGridTextColumn Header="Şifre" Binding="{Binding Password, Mode=TwoWay}" />
                <DataGridTextColumn Header="Hash" Binding="{Binding Hash, Mode=TwoWay}" />
            </DataGrid.Columns>
 
        </DataGrid>
        <Label Content="Eklenecek Kategori İsmi" HorizontalAlignment="Left" Margin="10,256,0,0" VerticalAlignment="Top" Background="{x:Null}" FontWeight="Bold"/>
        <Label Content="Kategoriler" HorizontalAlignment="Left" Margin="10,0,0,0" VerticalAlignment="Top" FontWeight="Bold" FontSize="14"/>
        <Button Name="ButonTemizle" Content="Temizle" HorizontalAlignment="Left" Margin="533,41,0,0" VerticalAlignment="Top" Width="75" RenderTransformOrigin="-0.013,0.545" Click="ButonTemizle_Click"/>
    </Grid>
</Window>
 
*********************************************************************
 









Yorumlar

Bu blogdaki popüler yayınlar

C# Media Player - Mp4 Video Oynatıcısı

Arkadaşlar Visual Studio WPF uygulaması ile basit bir Mp4 Media Player yaptım kodlarını da sizle paylaşayım.Ayrıca System.Windows.Form  referansını eklemeyi unutmayınız. Lütfen kodları kopyalayıp yapıştırmadan deneyerek yapamadıgınız anda bakarak yazınız. using  System; using  System . Collections . Generic; using  System . Linq; using  System . Text; using  System . Threading . Tasks; using  System . Windows; using  System . Windows . Controls; using  System . Windows . Data; using  System . Windows . Documents; using  System . Windows . Input; using  System . Windows . Media; using  System . Windows . Media . Imaging; using  System . Windows . Navigation; using  System . Windows . Shapes; using  Microsoft . Win32; using  System . Windows . Forms; namespace  WpfGun7_250717 {          public   partial   class   MainWindow  :  Window     {          public   string  selectedFileName;          public  MainWindow()         {             InitializeComponent();         }   

Smalltalk Programlama Dili

SMALLTALK PROGRAMLAMA DİLİ             • Dilin tarihcesi Smalltalk, Alan Kay önderliğinde, aralarında Adele Goldberg, Dan Ingalls, Ted Kaehler'in bulunduğu bir grup tarafından Xerox PARC'ta (Palo Alto Research Center) geliştirilmiş nesne yönelimli bir programlama dilidir. 1969 yılında geliştirilmeye başlanmış , ilk sürümü 1972 yılında ortaya cıkmıstır ve ilk kararlı sürümü  Smalltalk-80 dir.  Nesneye yönelik programlamanın atası diyebiliriz yeni bir programlama tekniğine öncülük etmiştir. Lisp , simula gibi dillerinden de etkilenmiştir ve bir çok dili de etkilemiştir. • Dilin tasarım amacları(design goals)    Smalltalk projesinin amacı, herkesin yaratıcı ruhu için bilgisayar desteği sağlamaktır. İşimiz, yaratıcı bir bireyi ve mevcut en iyi bilgisayar donanımı içeren bir vizyona dayanır. İki ana araştırma alanına yoğunlaşmayı seçildi ve modeller arasında bir arayüz görevi gören programlama dili, bilgisayarın insan iletişim sistemi denilebilir.    Grafik

BURP SUİTE KULLANIMI

BURP SUİTE Arkadaşlar bugün size Burp Suite programını anlatamaya çalışacağım , Burp Suite Nedir? Burp Suite ‘e proxy aracı dyebiliriz arkadaşlar . HTTP-HTTPS  istemci-sunucu mimarisini kullanan sistemlerde araya girmemize yardımcı olmakta diyebiliriz ve baska bir kaç ozellikleride var bunlarda fazla detaya girmeyeceğim. Burp Suite Kurulumu  Arkadaşlar ilk olarak tarayıcımızı kuralım , burada firefoxu kullandıgımızı varsayarak anlatacagım ve bu tür işlerde firefox kullanmanızı tavsiye ederim . Şimdi ilk olarak firefoxta  “ Tercihleri “ acalım -> “ Gelişmiş’i  “ -> sonra ağ bölümünde “ Ayarlar ” seçelim. Daha sonra vekil sunucu ve iletişim noktasını(Port) elle ayarla seçeneğinden yazarak ayarlayacağız . Burada ; Vekil Sunucu : 127.0.0.1 veya İp adresiniz İletisim Noktası : 8080 olarak ayarlayalım , daha sonra  sistem vekil sunucu ayarlarını kullan diyelim. Şuan tarayıcımızla işimiz bitti   Sıra geldi Burp Suite programına ;