PHP: Tự động tạo mật khẩu ngẫu nhiên - PHP Password Generating

PHP: Tự động tạo mật khẩu ngẫu nhiên - PHP Password Generating

Đoạn mã tự động tạo mật khẩu ngẫu nhiên (PHP Password Generating)
PHP Source Code:
<?php
function generatePassword($lengthVar=4) {
   $pass = '';
   $poss = '123456789abcdfghjkmnpqrstvwxyz';
   $i = 0;
   while ($i < $lengthVar) {

      $pass .= substr($poss, mt_rand(0, strlen($poss)-1), 1);
      $i++;
   } 
   return $pass;
}
?>
Cách sử dụng:
Copy và paste đoạn mã trên vào trang của bạn, sau đó gọi hàm generatePassword():
<?php
   $pas = genPwd(10);
?>
Kết quả:
Đoạn mã trên cho phép tự động tạo mật khẩu ngẫu nhiên có độ dài bất kỳ được tổ hợp từ các ký tự xác định trước.
Mật khẩu ngẫu nhiên được sinh ra có độ dài 10 ký tự.
Chú ý:
Nếu không chọn độ dài ký tự trong hàm generatePassword() thì mặc định độ dài mật khẩu bằng 4. Biến $poss trong hàm generatePassword() có thể được chỉnh sửa để quy định các ký tự xác định được sử dụng.
Xem chi tiết

PHP: Lớp kết nối MySQL với PHP bằng câu lệnh đơn giản

PHP: Lớp kết nối MySQL với PHP bằng câu lệnh đơn giản
PHP Code:
class mysql{
var $property = array(
    'hostname'    => 'localhost',
    'database'    => '',
    'username'    => '',
    'password'    => '',
);
function mysql($info){
foreach($this->property as $k    => $v){
$this->property[$k]=$info[$k];
}
}
function connect(){
$flag = @mysql_pconnect($this->property['hostname'],$this->property['username'],$this->property['password']);
if(!$flag)    die("can not connect to server. may be server bussy");
$flag= @mysql_select_db($this->property['database'],$flag);
if(!$flag) die("can not select database now");
}
}
Lưu vào trong 1 file ví dụ “global.php”;
Để dễ dàng khi kết nối bạn viết thêm 1 file init.php file này có chứ năng tạo các thông tin cấu hình cơ bản như kết nối mysql, lấy thông tin thành viên …
ví dụ
PHP Code:
<?php
$dbinfo = array(
'hostname'    => 'localhost',
'database'    => 'databasename',
'username'    => 'root',
'password'    => 'root',
);
include("includes/global.php");
$db = new mysql($dbinfo);
$db->connect();
?>
Như vậy file nào cần kết nối database bạn chỉ cần inlclude file init.php vào là ok;
PHP Code:
include("init.php");

Tag: PHP, MySQL, Apache, Database, Connection, dbinfo
Xem chi tiết

SQL Server: Câu lệnh truy vấn trong SQL Server 2005 (Select Command)

SQL Server: Câu lệnh truy vấn trong SQL Server 2005 (Select Command)

Câu lệnh truy vấn trong SQL Server 2005 (Select Command)

Các lệnh và các mệnh đề cơ bản trong SQL Server 2005
Lệnh SELECT

SELECT là một lệnh truy vấn dữ liệu cơ bản trong SQL. Có rất nhiều mệnh đề con tuỳ chọn trong câu lệnh SELECT.

Cấu trúc SELECT – FROM – WHERE
Cú pháp:
SELECT <Danh sách các cột> FROM <Danh sách bảng> WHERE <Điều kiện>;
Trong đó:
+ <Danh sách các cột>: Là danh sách các cột hoặc biểu thức của các cột được đưa vào kết quả truy vấn.
+ <Danh sách bảng>: Là danh sách các bảng mà từ đó các cột được lấy ra
+ <Điều kiện>: Là một biểu thức logic xác định các bản ghi thoả mãn điều kiện của câu lệnh.
Ví dụ 1: Hiển thị tên, tuổi của bảng sinh viên:
SELECT Ten, Tuoi 
FROM tblsinhvien;

Ví dụ 2: Hiển thị tên, học lực của những sinh viên có học lực >=7 trong bảng sinh viên:
SELECT Ten, HocLuc
FROM tblsinhvien
WHERE HocLuc>=7;

Truy vấn sử dụng các hàm MAX, MIN, AVG, SUM, COUNT

Hàm MAX
Chức năng: Cho giá trị lớn nhất trong cột
Ví dụ 3Hiển thị học lực cao nhất trong danh sách sinhvien
SELECT Max(HocLuc) AS DiemCaoNhat
FROM tblsinhvien;

Hàm MIN
Chức năng: Cho giá trị nhỏ nhất trong cột
Ví dụ 4Hiển thị học lực nhỏ nhất trong danh sách sinhvien
SELECT Min(HocLuc) AS DiemThapNhat
FROM tblsinhvien;

Hàm AVG
Chức năng: Cho giá trị tung bình cộng trong cột
Ví dụ 5: Hiển thị học lực trung bình của cột học lực trong danh sách sinhvien
SELECT AVG(HocLuc) AS DiemTB
FROM tblsinhvien;

Hàm SUM
Chức năng: Cho tổng giá trị trong cột
Ví dụ 6: Hiển thị tổng học lực của cột học lực trong danh sách sinhvien
SELECT SUM(HocLuc) TongHL
FROM tblsinhvien;

Hàm COUNT
Chức năng: Cho biết số phần tử ( hàng) trong cột
Ví dụ 7: Đếm số bản ghi (hàng) của cột học lực trong danh sách sinhvien
SELECT COUNT(HocLuc) AS SoSinhVien
FROM tblsinhvien;

Truy vấn sử dụng các phép AND, OR, IN, BETWEEN, NOT, ALL
- AND: Phép và logic
- OR: Phép hoặc logic
- IN: Là phần tử của…
- BETWEEN: Là phần tử giứa các phần tử …
- NOT: Phép phủ định
- ALL: Là tất cả những phần tử …
Ví dụ 8: Đưa ra danh sách những sinh viên có điểm >= 8.5 và có quê = “Hải Phòng”
SELECT *
FROM tblsinhvien
WHERE (diem>=8.5) AND ( que = “Hải Phòng’);
Ví dụ 9: Đưa ra danh sách những sinh viên có quê = “Nam Định” hoặc “Thanh Hóa”
SELECT *
FROM tblsinhvien
WHERE (que = “Nam Định”) OR (que = “Thanh Hóa”);
Ví dụ 10: Đưa ra danh sách những nhân viên có kết quả là 8, 9, 10
SELECT *
FROM tblDiem
WHERE KetQua IN (8, 9, 10);
Ví dụ 11: Đưa ra danh sách những sinh viên có kết quả nằm trong khoảng [5,7]
SELECT *
FROM tblDiem
WHERE KetQua BETWEEN 5 and 7;
Ví dụ 12: Đưa ra danh sách những sinh viên có quê không phải là “Hải Dương”
SELECT *
FROM tblsinhvien
WHERE que NOT(SELECT que FROM tblsinhvien
WHERE (que = ”Hải Dương”));
Ví dụ 13: Hiển thị tất cả kết quả của sinh viên
SELECT ALL KetQua
FROM tblDiem;

Truy vấn thay đổi tên cột, tên bảng và hiển thị các cột từ nhiều bảng khác nhau,

- Muốn hiển thị các cột từ nhiều bảng khác nhau thì trong câu lệnh SELECT chúng ta phải làm như sau:
SELECT < Danh sách Tên_bang.Tên_cột>
FROM <Danh sách Tên_bảng>
WHERE <Điều kiện nối bảng>;
- Có thể đặt tên các cột trong kết quả các truy vấn bằng cách đặt tên mới vào sau cột được chọn ngăn cách bởi từ khoá AS, tương tự ta có thể đặt tên mới cho các bảng
Ví dụ 14: Hiển thị danh sách sinh viên bao gồm tên, kết quả từ bảng tblsinhviên và bảng tbldiem:
SELECT tblsinhvien.Ten AS Ten, tblDiem.KetQua AS KQ
FROM tblsinhvien AS sv, tblDiem AS sd
WHERE (sv.MaSV = sd.MaSV);

Truy vấn sử dụng lượng từ DISTINCT/ ALL

* Để tránh tình trạng đưa ra các bộ (hàng/bản ghi) trùng lặp trong các kết quả truy vấn thì SQL có lượng từ DISTINCT.
Ví dụ 15: Hiển thị các mã đề tài được sinh viên đăng ký trong bảng đề tài
SELECT DISTINCT MaDT FROM tblsinhvien;

* Để hiển thị tất cả các hàng (lấy cả các hàng có giá trị trùng nhau ) ta dùng lượng từ ALL
Ví dụ 16: Hiển thị tất cả các MaDT mà bảng sv_dtai có
SELECT ALL MaDT
FROM tblDiem;

Chú ý: Ngầm định (nếu không viết Distinct/All) thì máy hiểu là All

Truy vấn sử dụng mệnh đề GROUP BY

- Để hiển thị các bản ghi theo nhóm ta dùng mệnh đề GROUP BY
Ví dụ 17: Hiển thị bảng đề tài theo nhóm mã đề tài
SELECT MaDT
FROM tbldetai
GROUP BY MaDT;

Truy vấn có sử dụng mệnh đề HAVING

- Mệnh đề HAVING thường được sử dụng cùng mệnh đề GROUP BY. Sau HAVING là biểu thức điều kiện. Biểu thức điều kiện này không tác động vào toàn bảng được chỉ ra ở mệnh đề FROM mà chỉ tác động lần lượt từng nhóm các bản ghi đã chỉ ra tại mệnh đề GROUP BY.
Ví dụ 18: Đếm xem có bao nhiêu đề tài đã được sinh viên đăng ký tham gia
SELECT MaDT
FROM tbldetai
GROUP BY MaDT
HAVING COUNT(*);

Truy vấn có sử dụng mệnh đề ORDER BY

- Mệnh đề ORDER BY được dùng để sắp xếp dữ liệu trong bảng theo chiều tăng hoặc giảm (ASC hoặc DESC) của một cột nào đó.
- Mệnh đề ORDER BY nếu đứng sau GROUP BY thì miền tác động của sắp xếp là trong từng nhóm của cột được chỉ ra trong GROUP BY.
Ví dụ 19: Sắp xếp bảng sinhvien theo chiều giảm dần của cột học lực
SELECT *
FROM tblsinhvien
ORDER BY hl DESC;

Truy vấn lồng nhau
Trong lệnh SELECT có thể được lồng nhiều mức
Ví dụ 20: Hiển thị sinh viên có học lực cao nhất
SELECT *
FROM tblsinhvien
WHERE hl = (SELECT MAX (hl) FROM tblsinhvien);

Ví dụ 21: Hiển thị hođệm, tên của những sinh viên có kết quả >= 8 và có tên đề tài là Pascal
SELECT hodem,ten
FROM tblsinhvien
WHERE MaSV IN (SELECT MaSV
FROM tblDiem
WHERE (kq >= 8) AND
( MaDT IN ( SELECT MaDT FROM tbldetai
WHERE tendt = “Pascal”)));

Tag: SQL Server, T-SQL, SQL Server 2005, Select Command, Truy vấn sql
Xem chi tiết

Code C#: Mã hóa cổ điển Vigenere (Vigenere Cipher)

Code C#: Mã hóa cổ điển Vigenere (Vigenere Cipher)

(VIGENERE CIPHER)
///HÀM MÃ HÓA
static void VigenereEncrypt(ref StringBuilder s, string key)
{
    for (int i = 0; i < s.Length; i++) s[i] = Char.ToUpper(s[i]);
    key = key.ToUpper();
    int j = 0;
    for (int i = 0; i < s.Length; i++)
    {
        if (Char.IsLetter(s[i]))
        {
            s[i] = (char)(s[i] + key[j] - 'A');
            if (s[i] > 'Z') s[i] = (char)(s[i] - 'Z' + 'A' - 1);
        }
        j = j + 1 == key.Length ? 0 : j + 1;
    }
}
///HÀM GIẢI MÃ
static void VigenereDecrypt(ref StringBuilder s, string key)
{
    for (int i = 0; i < s.Length; i++) s[i] = Char.ToUpper(s[i]);
    key = key.ToUpper();
    int j = 0;
    for (int i = 0; i < s.Length; i++)
    {
        if (Char.IsLetter(s[i]))
        {
            s[i] = s[i] >= key[j] ?
                      (char)(s[i] - key[j] + 'A') :
                      (char)('A' + ('Z' - key[j] + s[i] - 'A') + 1);
        }
        j = j + 1 == key.Length ? 0 : j + 1;
    }
}
///HÀM CHÍNH
public static void MainMethod()
{
    StringBuilder s = new StringBuilder("ArkPhaze");
    const string key = "KeyData";
    VigenereEncrypt(ref s, key);
    Console.WriteLine(s);
    VigenereDecrypt(ref s, key);
    Console.WriteLine(s);
}
Tag: C, C++, C#, mã hóa cổ điển, Vigenere, Vigenere Cipher, an toàn, bảo mật
Xem chi tiết

Code C#: Mã hóa cổ điển Rail-Fence (Rail Fence Cipher)

Code C#: Mã hóa cổ điển Rail-Fence (Rail Fence Cipher)

(RAIL FENCE CIPHER)
///MÃ HÓA
public static string Encrypt(int rail, string plainText)
{
    List<string> railFence = new List<string>();
    for (int i = 0; i < rail; i++)
    {
        railFence.Add("");
    }

    int number = 0;
    int increment = 1;
    foreach (char c in plainText)
    {
        if (number + increment == rail)
        {
            increment = -1;
        }
        else if (number + increment == -1)
        {
            increment = 1;
        }
        railFence[number] += c;
        number += increment;
    }

    string buffer = "";
    foreach (string s in railFence)
    {
        buffer += s;
    }
    return buffer;
}
///GIẢI MÃ
public static string Decrypt(int rail, string cipherText)
{
    int cipherLength = cipherText.Length;
    List<List<int>> railFence = new List<List<int>>();
    for (int i = 0; i < rail; i++)
    {
        railFence.Add(new List<int>());
    }

    int number = 0;
    int increment = 1;
    for (int i = 0; i < cipherLength; i++)
    {
        if (number + increment == rail)
        {
            increment = -1;
        }
        else if (number + increment == -1)
        {
            increment = 1;
        }
        railFence[number].Add(i);
        number += increment;
    }

    int counter = 0;
    char[] buffer = new char[cipherLength];
    for (int i = 0; i < rail; i++)
    {
        for (int j = 0; j < railFence[i].Count; j++)
        {
            buffer[railFence[i][j]] = cipherText[counter];
            counter++;
        }
    }

    return new string(buffer);

}
///CHƯƠNG TRÌNH CHÍNH
static void Main(string[] args)
{
    int key = 4;
    string plainText = "I Made Ronaldo";

    string cipherText   = RailFence.Encrypt(key, plainText);
    string decryptText  = RailFence.Decrypt(key, cipherText);

    Console.WriteLine("Plain Text   : " + plainText);
    Console.WriteLine("Cipher Text  : " + cipherText);
    Console.WriteLine("Decrypt Text : " + decryptText);

}
Tag: C, C++, C#, mã hóa cổ điển, Rail-Fence, Rail-Fence Cipher, an toàn, bảo mật
Xem chi tiết

Code C#: Mã hóa cổ điển Affine (Affine Cipher)

Code C#: Mã hóa cổ điển Affine (Affine Cipher)

///Hàm mã hóa Affine (Affine Encryption)
/// e(x) = (ax + b)(mod m). Note: a & m là số nguyên tố cùng nhau.

public static string AffineEncrypt(string plainText, int a, int b){
string cipherText = "";

char[] chars = plainText.ToUpper().ToCharArray();

foreach (char c in chars){
      int x = Convert.ToInt32(c - 65);
      cipherText += Convert.ToChar((( a * x + b ) % 26) + 65);
}

return cipherText;
}

/// Hàm giải mã Affine (Affine Decryption)
/// d(x) = aInverse * (e(x) − b)(mod m).

public static string AffineDecrypt(string cipherText, int a, int b){
string plainText = "";

int aInverse = MultiplicativeInverse(a); 

char[] chars = cipherText.ToUpper().ToCharArray();

foreach (char c in chars){
    int x = Convert.ToInt32(c - 65);
    if (x - b < 0) x = Convert.ToInt32(x) + 26;
    plainText += Convert.ToChar(((aInverse * (x - b)) % 26) + 65);
} 
    return plainText;
}

public static int MultiplicativeInverse(int a){
for (int x = 1; x < 27; x++){
    if ((a * x) % 26 == 1)
    return x;
}
throw new Exception("No multiplicative inverse found!");

}

Tag: C, C++, C#, mã hóa cổ điển, Affine, Affine Cipher, an toàn, bảo mật, Security
Xem chi tiết

Code C#: Mã hóa cổ điển Ceasar (Ceasar Cipher)

Code C#: Mã hóa cổ điển Ceasar (Ceasar Cipher)
///Ceasar Cipher/Ceasar Encription
using System;
class Program{
static string Caesar(string value, int shift) {
 char[] buffer = value.ToCharArray();
 for (int i = 0; i < buffer.Length; i++){
     // Biến letter chứa ký tự cần mã hóa
     char letter = buffer[i];
     // Add shift to all.
     letter = (char)(letter + shift);
     // Subtract 26 on overflow.
     // Add 26 on underflow.
     if (letter > 'z')  {
  letter = (char)(letter - 26);
     }
     else if (letter < 'a') {
  letter = (char)(letter + 26);
     }
     // Lưu trữ
     buffer[i] = letter;
 }
 return new string(buffer);
    }

    static void Main()
    {
 string a = "test";
 string b = Caesar(a, 18); 
 string c = Caesar(b, -18); 

 string d = Caesar(a, 1); 
 string e = Caesar(d, -1); 

 string f = "exxegoexsrgi";
 string g = Caesar(f, -4); 

 Console.WriteLine(a);
 Console.WriteLine(b);
 Console.WriteLine(c);
 Console.WriteLine(d);
 Console.WriteLine(e);
 Console.WriteLine(f);
 Console.WriteLine(g);
    }
}
Xem chi tiết

Code C-C++: Tìm ma trận chuyển vị trong C++

Code C-C++: Tìm ma trận chuyển vị trong C++

#include<iostream>
#include<iomanip>
using namespace std;
int M[50][50];
void NhapMaTran(int A[50][50], int n, int m){
for(int i=0;i<n;i++)
for(int j=0;j<m;j++){
cout<<"\n A["<<i<<","<<j<<"]= ";
cin>>A[i][j];
}
}
void InMaTran(int B[50][50], int n,int m){
for(int i=0;i<n;i++){
for(int j=0;j<m;j++)
cout<<setw(3)<<B[i][j]; 
cout<<"\n";

}
}
void ChuyenVi(int F[50][50], int n,int m){
for(int j=0;j<m;j++){
for(int i=0;i<n;i++)
cout<<setw(3)<<F[i][j]; 
cout<<"\n";
}
}
main(){
int r,c;
cout<<"\n So dong = "; cin>>r;
cout<<"\n So cot = "; cin>>c;
NhapMaTran(M,r,c);
cout<<"\n Ma tran vua nhap: \n";
InMaTran(M,r,c);
cout<<"Ma tran chuyen vi: \n";
ChuyenVi(M,r,c);
}
Tag: C, C++, ma trận, mảng 2 chiều, mảng hai chiều, ma trận chuyển vị, array
Xem chi tiết

Code C-C++: Phép toán cộng, nhân hai ma trận

Code C-C++: Phép toán cộng, nhân hai ma trận
#include<conio.h>
#include<iostream.h>
#define max 100
/*Nhap ma tran*/
void NhapMaTran(float A[max][max], int m, int n){
   for(int i = 0; i<m; i++)
   for(int j = 0; j<n; j++) {
      cout<<"a["<<i<<"]["<<j<<"] = ";
      cin>>A[i][j];
   }
}

/*Xuat ma tran*/
void XuatMaTran(float A[max][max], int m, int n) {
   for(int i=0 ; i<m; i++){
      cout<<endl;
      for(int j=0 ; j<n; j++)
         cout<<A[i][j]<<"\t";
   }
}
/*C = A+B*/
void CongMaTran(float A[max][max], float B[max][max], float C[max][max], int m, int n) {
   for(int i = 0; i<m; i++)
   for(int j = 0; j<n; j++)
      C[i][j] = A[i][j]+B[i][j];

}
/*A cap mxn * B cap nxp = C cap mXp*/
void NhanMaTran(float A[max][max], float B[max][max], float C[max][max], int m, int n, int p){
   for(int i = 0; i<m; i++)
      for(int k = 0; k<p; k++) {
         C[i][k]=0;
         for(int j = 0; j<n; j++)
            C[i][k] = C[i][k]+A[i][j]*B[j][k];
      }
}
/*Chuong trinh chinh*/
void main(){
   int m=3,n=2,p=3;
   float A[max][max],B[max][max],C[max][max],D[max][max];
   clrscr();
   cout<<"Nhap ma tran A cap "<<m<<"x"<<n<<endl;
   NhapMaTran(A,m,n);
   cout<<"Nhap ma tran B cap "<<m<<"x"<<n<<endl;
   NhapMaTran(B,m,n);
   cout<<"Nhap ma tran C cap "<<n<<"x"<<p<<endl;
   NhapMaTran(C,n,p);
   cout<<"Ma tran A\n";
   XuatMaTran(A,m,n);
   cout<<"\nMa tran B\n";
   XuatMaTran(B,m,n);
   cout<<"\nMa tran C\n";
   XuatMaTran(C,n,p);
   cout<<"\nMa tran D = A+B\n";
   CongMaTran(A,B,D,m,n);
   XuatMaTran(D,m,n);
   cout<<"\nMa tran D = A.C\n";
   NhanMaTran(A,C,D,m,n,p);
   XuatMaTran(D,n,p);
   getch();
}
Tag: Ma trận, mảng 2 chiều, mảng hai chiều, phép cộng, phép nhân, C, C++
Xem chi tiết