목차
1. PHP - SALT 값
1-1 SALT 개요
1-2 SALT 값을 이용한 패스워드 저장
2. 논리 모델링 구성 실습
2-1 문서별 논리 모델링 작성
1. PHP - SALT 값
1-1 SALT 개요
솔트는 패스워드를 해싱할 때 패스워드 뒤에 임의의 값(솔트 값)을 붙여 같이 해싱하는 것으로, 여러 사용자의 비밀번호가 같더라도 해시코드는 다르게 생성할 수 있다.
솔트 값이 없는 상태에서 패스워드에 솔트 값을 붙이는 방법으로 다음 두 가지가 있다.
- 사용자 계정이 저장된 테이블에 솔트 컬럼을 추가하여 패스워드에 붙여 해시코드 생성
- 식별자를 패스워드에 붙여 해시코드 생성
정석은 솔트 컬럼을 추가하는 방식이나, 급한 경우 식별자를 솔트 값으로 이용하여 해시코드를 생성할 수 있다.
1-2 SALT 값을 이용한 패스워드 저장
사용자의 아이디를 솔트 값으로 이용하도록 다음과 같이 프로그램을 개선할 수 있다.
기존 코드에서 패스워드만을 해싱하던 모든 부분은 아이디까지 함께 해싱하도록 한다.
// 계정 등록 php //
<html>
<head>
<title>id.php</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body>
<?
require('conn.php');
$id = $_POST["id"];
$password = $_POST["passwd"];
$sql="insert into id (id, passwd)
values ('$id', RAWTOHEX(STANDARD_HASH('$password'||'$id', 'SHA256')))";
$result=oci_parse($conn,$sql);
$re=@oci_execute($result);
oci_free_statement($result);
oci_close($conn);
. . .
// 로그인 php //
<html>
<head>
<title>check.php</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body>
<?
session_start();
require('conn.php');
$id = $_POST["id"];
$passwd = $_POST["passwd"];
$sql="select * from id
where id = '$id'
and passwd = RAWTOHEX(STANDARD_HASH('$passwd'||'$id', 'SHA256'))";
$result=oci_parse($conn,$sql);
$re=oci_execute($result);
$row_num=oci_fetch_all($result,$row);
oci_free_statement($result);
oci_close($conn);
. . .
// st_vi.php 개선//
<html>
<head>
<title>st_vi.php</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body>
<?
session_start();
if(empty($_GET["logout"])){}
else session_unset();
require('conn.php');
$id = $_SESSION["id"];
$passwd = $_SESSION["passwd"];
$sql="select * from id
where id = '$id'
and passwd = RAWTOHEX(STANDARD_HASH('$passwd'||'$id', 'SHA256'))";
$result=oci_parse($conn,$sql);
$re=oci_execute($result);
$row_num=oci_fetch_all($result,$row);
. . .
2. 논리 모델링 구성 실습
2-1 문서별 논리 모델링 작성
● 인사기록카드 논리 모델링 작성
● 판매전표 논리 모델링 작성
● 거래처관리 논리 모델링 작성
● 차량운행일지 논리 모델링 작성
● 네 가지 항목 통합 논리 모델링 작성
'일일 정리' 카테고리의 다른 글
웹브라우저 구성 및 모델링 (0) | 2025.04.02 |
---|---|
오라클 클라이언트 - 아파치 - PHP 연동, php.ini 보안 설정 (1) | 2025.03.31 |
Oracle Hash, 오라클 Client 설치, PHP - 세션 (0) | 2025.03.26 |
PHP - 오라클 DB 연동, 논리 모델링 구성 (0) | 2025.03.25 |
PHP - 오라클 DB 연동, 논리 모델링 구성 (0) | 2025.03.24 |