Kategoriler
Genel

C# ve PHP | E-posta adresinin bir kısmını gizlemek

Şifremi unuttum sayfalarında genellikle e-posta ya da kullanıcı adınızı yazın şeklinde bir uyarı görürsünüz, bu alanlarda eğer kayıtlı kullanıcı varsa genelde mail adresinize şifreniz gönderildi gibi bir mesaj görürsünüz. Peki üyeniz kullanıcı adını yazdıysa ve e-posta adresini hatırlamıyorsa ne yapmanız gerekiyor?

Kullanıcı adı girildiğinde cevap olarak e-posta adresini döndürmek pek güvenli bir yöntem değildir, çünkü brute force ile kullanıcı adları denenerek sisteminize üye olan kişilerin e-posta adresleri ele geçirilebilir. Bazı e-posta sağlayıcılar şifremi unuttum kısmında ikincil mailinizi a*********o@gmail.com şeklinde gizleyerek sizin güvenliğinizi sağlamaktadır. İşte vereceğim regex ve örnek program kodları sizin bu gizlemeyi yapmanızı sağlayacak.

string regex = @"(?<=.).(?=.*.{1}@)";

Örnek programlar

C# ile E-posta Regex

using System.IO;
using System;
using System.Text.RegularExpressions;

class Program
{
    static void Main()
    {
        string regex = @"(?<=.).(?=.*.{1}@)";

        Console.WriteLine(Regex.Replace("johndoe@hotmail.com", regex, "*"));
        Console.WriteLine(Regex.Replace("lastsamurai@gmail.com", regex, "*"));
        Console.WriteLine(Regex.Replace("alperen@eposta.com", regex, "*"));
        Console.WriteLine(Regex.Replace("john@okul.edu.tr", regex, "*"));
        Console.WriteLine(Regex.Replace("joe@gmail.com", regex, "*"));
        Console.WriteLine(Regex.Replace("jn@gmail.com", regex, "*"));
    }
}

PHP ile E-posta Regex

   $regex = '/(?<=.).(?=.*.{1}@)/u';
   echo preg_replace($regex,'*','johndoe@hotmail.com');

*preg_replace -> PHP 4+ üzerinde çalışmaktadır.
Örnek çıktılar:

j*****e@hotmail.com
l*********i@gmail.com
a*****n@eposta.com
j**n@okul.edu.tr
j*e@gmail.com
jn@gmail.com

Regex yazımı ve fikir için Fikri Abi’ye teşekkürler 🙂

Kategoriler
Program Arşivim

C++ Karekök, Kuvvet, Log ve Trigonometri Hesabı

cpluspluscalculatorC++ projesi olarak farklı bir hesap makinesi yaptım. Hesap makinesi temel 4 mantık üzerine çalışıyor. Karekök Alma, Kuvvet Alma, Logaritma hesaplama ve Trigonometrik Hesap. Bunların hepsi math kütüphanesiyle mümkün oluyor. Programın ana dili İngilizce fakat tanımları Türkçe yazdım. Yazının sonunda .exe indirme linki bulunmaktadır.

Not : System(“Pause”); windows 8 için gerekmemektedir, ama daha önceki sürümler için gerekebilir.

Bu kod şunları içermektedir:

  1. Basit input ve outputlar
  2. Math Kütüphanesi kullanımı
  3. Getch Fonksiyonu
// Alperen Ozlu
// Advanced C++ Calculator 
// Level : Basic
// Recommended Program: Dev C++
// www.alperenozlu.com

#include <iostream> // Genel Kütüphane
#include <math.h> // Matematik işlemleri için gerekli
#include <conio.h> // Getch komutu için gerekli
using namespace std; // Her satırda std:: yazmayalım.
int main ()
{
	int selectionfirst; // Kullanıcıya 1,2,3,4 seçeneklerini sunuyoruz. Integer olması yeterli.
	double number; // Genel olarak kullanıcıya sorduğumuz ilk sayı
	double power; // 2. İşlem için kuvvet soruyoruz
	do {
		// 1 - Karekök, 2 - Herhangi bir sayının, herhangi bir kuvveti, 3- Bir sayının Logaritması, 4- Trigonometrik Fonksiyonlar
	cout << " Select a number : n 1) Square Root of a number n 2) Any power of any number n 3) Logarithm Calculator n 4) Trigonometric functions n "; 	
	cout << "n " ; cin >> selectionfirst; cout << "n " ; // Kullanıcıdan bir değer alalım

	switch (selectionfirst) // Switch Fonksiyonu
	{
	 case 1: // Eğer selectionfirst değeri 1 ise,
	 	cout << " Square Root of A Number "<< endl; // Olayın başlığı
	 	cout << " Enter A Number : " ; cin >> number ; // Sayıyı Soralım
	 	cout << " Square Root of " << number << " is = "; // *girilensayi* nin karekökü şudur =
	 	number = sqrt (number); // Hesaplama kısmı sqrt(sayi)
	 	cout << number <<endl; // Ekrana yaz

	break;
	   case 2: // Eğer selectionfirst değeri 2 ise,
		cout << " Any Power of Any Number " <<endl; // Olayın başlığı
		cout << " Enter A Number : " ; cin >> number; // Sayıyı Soralım
		cout << " Enter A Power : " ; cin >> power; // Kuvveti Soralım
		cout << " " << number << " ^ " << power << " is = " ; 
		number = pow (number,power); // Hesaplama kısmı pow(sayi,kuvveti)
		cout << number <<endl; // Ekrana yaz

	 break;
	 case 3: // Eğer selectionfirst değeri 3 ise,
	 	 cout << " Logarithm Calculator " <<endl; // Olayın başlığı
	 	 cout << " Enter A Number: " ; cin >> number ; // Sayıyı Soralım
	 	 cout << " Logarithm of " << number << " is = "; 
	 	 number = log10 (number); // 10 tabanında log alalım
	 	 cout << number <<endl; // Ekrana yaz
	 break;
	 case 4: // Eğer selectionfirst değeri 4 ise,
	 	 double answersin,answercos,answertan;

	 	 cout << " Trigonometric Functions " << endl; // Olayın başlığı
		 cout << " Enter A Number: " ; cin >> number ;
		 cout << " Trigonometric Functions of " << number << " is = ";
		 answersin = sin (number*3.14159265/180);
		 answercos = cos (number*3.14159265/180);
		 answertan = tan (number*3.14159265/180);

		 cout << " Sin " << number << " "  << floor(answersin) << endl;
		 cout << " Cos " << number << " "  << floor(answercos) << endl;
		 cout << " Tan " << number << " "  << floor(answertan) << endl;
		 cout << " Cot " << number << " "  << floor(1/answertan) << endl;

	break;
	// Eğer selectionfirst değeri 1,2,3,4 değil ise,
	default:cout << " Unidentified request. Please select again." <<endl;

		}
	cout << " n Please Press Enter, For New Selection." <<endl; // Eğer yeniden işlem yapmak istiyorsanız, ENTER tuşuna basın
} while (getch()==13); // Getch 13 , enter tuşu demektir.
	// system("Pause") ;
	return 0;

}

Bu programı indir ( .RAR olarak, exe dosyası )