烃类(ting)->CH H 烷烃->H-C-H H 烯烃->H-C=C-H H H 炔烃->H-C#C-H 芳香烃->苯环 苯环->C6H6 萘(双环)->C10H8 --------------- 甲基-> -CH3 乙基-> -CH2=CH3 亚甲基-> -CH2- --------------- 羟基(qiǎng)-> -OH -> 醇羟基,酚羟基 H 甲醇->H-C-OH H 酚->苯-OH --------------- 羰基(tāng)-> -C=O -> 醛、酮、羧酸、羧酸衍生物 醛基-> -C=O H 甲醛->H-C=O H --------------- 酮基-> R-C=O R 丙酮-> CH3-C=O | CH3 --------------- 羧基(suō)-> -C-OH -> 醋酸、氨基酸都含有羧基,这些羧基与烃基直接连接的化合物,叫作羧酸 O 甲酸->H-C-OH O --------------- 酯基-> -C-O- O H 甲酸甲酯->H-C-O-C-H O H --------------- 醚键-> -O- 二甲醚-> CH3-O-CH3 --------------- 醯(xi)/酰基-> -C=O -> 醛、酮、羧酸、羧酸衍生物等几乎都有酰基 R 乙酰-> -C-CH3 O --------------- 氨->NH3 氨基-> -NH2 胺基->RNH2;RNHR';RN(R')R'' 酰胺->酰基 + 胺基 乙酰胺->CH3-C-NH2 O --------------- 硝酸->HNO3 硝基->硝酸分子中去掉一个羟基后剩下的基团。硝基与其他基团(主要是烃基)相连的化合物称为硝基化合物 --------------- 脂杂环、芳杂环 单杂环 五元杂环->呋喃、噻吩、吡咯、噻唑、咪唑等。 六元杂环->吡啶、吡嗪、嘧啶、哒嗪等。 稠环杂环->吲哚、喹啉、蝶啶、吖啶等。 双杂环->嘌呤 --------------- H 氨基酸(amino acid)->R-C-COOH NH2 非极性氨基酸(疏水氨基酸)8种->丙氨酸(Ala)缬氨酸(Val)亮氨酸(Leu)异亮氨酸(Ile)脯氨酸(Pro)苯丙氨酸(Phe)色氨酸(Trp)蛋氨酸(Met) 极性氨基酸(亲水氨基酸)不带电荷 7种->甘氨酸(Gly)丝氨酸(Ser)苏氨酸(Thr)半胱氨酸(Cys)酪氨酸(Tyr)天冬酰胺(Asn)谷氨酰胺(Gln) 极性氨基酸(亲水氨基酸)带正电荷的氨基酸(碱性氨基酸) 3种->赖氨酸(Lys)精氨酸(Arg)组氨酸(His) 极性氨基酸(亲水氨基酸)带负电荷的氨基酸(酸性氨基酸) 2种->天冬氨酸(Asp)谷氨酸(Glu) 肽键(peptide bond)->2氨基酸 肽链(peptide chain)->N氨基酸 蛋白质(protein)->n条肽链 --------------- 核糖->D-核糖->五碳单糖->C5H10O5 脱氧核糖->D-2-脱氧核糖->五碳单糖->C5H10O4 碱基->核碱基=含氮碱基->杂环化合物->胞嘧啶C、鸟嘌呤G、腺嘌呤A、胸腺嘧啶T-DNA、尿嘧啶U-RNA 核苷->碱基-磷酸双酯键 + 核糖/脱氧核糖的1位碳原子相连而形成的化合物 核苷酸->核苷 + 磷酸->碱基 + 核糖 + 磷酸 脱氧核苷酸->脱氧核苷 + 磷酸->碱基 + 脱氧核糖 + 磷酸 磷酸二酯键->1分子磷酸 + 2核苷酸酯化形成的2酯键->羟基醇中的3碳上'—OH(羟基)和后一个核苷酸的5'—磷酸基形成酯键,依次连下去,形成多核苷酸链,即核酸大分子链。 核糖核酸RNA->核糖核苷酸经磷酸二酯键缩合而成长链状分子。 脱氧核糖核酸DNA->双螺旋结构两条反向互补多脱氧核苷酸链 核酸 = 核糖核酸RNA + 脱氧核糖核酸DNA RNA->tRNA、mRNA、rRNA mRNA->5’端帽子结构(m7G)+ 5′端不翻译区(UTRs) + 翻译区(编码区)+ 3′端不翻译区 + 3’端的多聚A Poly(A)尾巴 基因编码区->不连续的外显子(expressed region 最终实现表达) + 内含子(Intron 不能表达) 开放阅读框ORF(Open reading frame) 编码序列CDS(Coding sequence) 遗传信息(genetic information) IL白细胞介素,IFN干扰素,TNF肿瘤坏死因子,CSF集落刺激因子,LAK淋巴因子激活的杀伤细胞,TIL肿瘤浸润淋巴细胞 主要组织相容性复合体(major histocompatibility complex,MHC) 树突状细胞(dendritic cell,DC) 抗原递呈细胞(antigen presenting cells, APC) 白细胞分化抗原(Cluster of Differentiation CD)->mRNA疫苗能够引起强烈的CD4+或CD8+ 的T细胞应答 拟病毒、类病毒和病毒粒子 朊蛋白分子(PrPc),朊病毒(PrPsc)prion virus --------------- root@ip-172-31-40-85:/# df -h Filesystem Size Used Avail Use% Mounted on udev 488M 0 488M 0% /dev tmpfs 100M 11M 89M 11% /run /dev/xvda1 30G 20G 10G 66% / tmpfs 496M 0 496M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 496M 0 496M 0% /sys/fs/cgroup /dev/loop2 18M 18M 0 100% /snap/amazon-ssm-agent/1566 /dev/loop1 29M 29M 0 100% /snap/amazon-ssm-agent/2012 /dev/loop4 97M 97M 0 100% /snap/core/9665 /dev/loop0 97M 97M 0 100% /snap/core/9804 tmpfs 100M 0 100M 0% /run/user/1000 --- 20200825 AWS-QT ADA 備份下載 ========================================================================================================================= 後台打開設定 STORES->Configuration->GENERAL->Reports->General Options->Enable Reports->Yes 清空舊的表 customer_visitor->訪客記錄 report_event->訪問記錄 report_viewed_product_index->訪問產品 (20200502 16:00) mysqldump -u root -prevres88 --databases magento2 > /var/www/bk-gz/magento2_234_8pm_20200502_1600_ok.sql (20200503 10:51) TRUNCATE sales_bestsellers_aggregated_monthly; SELECT * FROM sales_order_item WHERE created_at < '2020-03-20'; DELETE FROM sales_order_item WHERE created_at < '2020-03-20'; (共 54 行) Bestsellers->You refreshed lifetime statistics. --- 20200502 AWS-QT most viewed product report 沒有生效 + 新增 Packing Material + 清舊表成功 ========================================================================================================================= cd /var/www/magento2/app/design/frontend/Lee cp pwc b4u -r joe b4u/registration.php-> 'frontend/Lee/b4u', joe b4u/theme.xml->
FREE SHIPPING
qt_pwc_dir_50
qt_pwc_dir_68
qt_pwc_dir_65
qt_service
(products_id=305,307,308,312,355)
12.) 手工去除 ..
13.) remove whole
--- 20191202 修改舊RO站產品說明 去除href
=========================================================================================================================
1.) 去除 ? ? (76 records)
SELECT * FROM products_description WHERE products_description LIKE '%?%'
UPDATE products_description SET products_description=REPLACE(products_description,'?','') WHERE products_description LIKE '%?%'
2.) 去除 (Please Click Picture to enlarge the picture) (324 + 94 + 52 records)
SELECT * FROM products_description WHERE products_description LIKE '%(Please Click Picture to enlarge the picture)%'
UPDATE products_description SET products_description=REPLACE(products_description,'(Please Click Picture to enlarge the picture)','') WHERE products_description LIKE '%(Please Click Picture to enlarge the picture)%'
UPDATE products_description SET products_description=REPLACE(products_description,'(Please Click ','') WHERE products_description LIKE '%(Please Click %'
UPDATE products_description SET products_description=REPLACE(products_description,'Picture to enlarge the','') WHERE products_description LIKE '%Picture to enlarge the%'
UPDATE products_description SET products_description=REPLACE(products_description,'picture)','') WHERE products_description LIKE '%picture)%'
UPDATE products_description SET products_description=REPLACE(products_description,'Picture to','') WHERE products_description LIKE '%Picture to%'
UPDATE products_description SET products_description=REPLACE(products_description,'enlarge the picture)','') WHERE products_description LIKE '%enlarge the picture)%'
UPDATE products_description SET products_description=REPLACE(products_description,'the picture)','') WHERE products_description LIKE '%the picture)%'
UPDATE products_description SET products_description=REPLACE(products_description,'enlarge','') WHERE products_description LIKE '%enlarge%'
UPDATE products_description SET products_description=REPLACE(products_description,'PW- PW-Picture)','') WHERE products_description LIKE '%PW- PW-Picture)%'
UPDATE products_description SET products_description=REPLACE(products_description,'Picture)','') WHERE products_description LIKE '%Picture)%'
10.) 去除 (82 + 128 records) SELECT * FROM products_description WHERE products_description LIKE '%
%' UPDATE products_description SET products_description=REPLACE(products_description,'
','') WHERE products_description LIKE '%
%'; UPDATE products_description SET products_description=REPLACE(products_description,'
','') WHERE products_description LIKE '%
%'; 11.) 去除
http://cgi5.ebay.com/ws/eBayISAPI.dll?SimilarListing&itemid=110389038550#RO-P1
http://stores.ebay.com/purewaterclub_Water-Filter-System_W0QQcolZ4QQdirZ1QQfclZ4QQfsubZ231976010QQftidZ2QQtZkmQQ_trksidZp1742.m154.l1264
5.)去掉無效說明
a.) (Please Click Picture to enlarge the picture) -> 324 records
b.)Great Gift!
We Could Ship This Item To Your Friend Within US Continatal!
Good For Your Family And Friends! -> 328 records
6.)去掉破圖 ??
http://59.124.16.10/items/Driver/driver.jpg
7.)去掉下載Download Manual hyper link 32 records
http://59.124.16.10/items/Driver/Protable%20RO%20instruction.doc
8.)去掉Buy It Now價格 194 records
Buy It Now is Just US$108.99 and 2-7 days* you will GET IT at HOME within US!!
9.)去掉Retail Price價格 256 records
(Retail Price:US$320)
SELECT * FROM `products_description` WHERE `products_description` LIKE '%file:%'
--- 20191110 修改舊RO站產品說明
=========================================================================================================================
magento2 table customer_entity->password_hash:
format -> hash(md5/sha256) : salt (max 32digit) : version (0/1) (md5/sha256) ?->: convet to version (1/2?)
b7de469740dc4f7edf08fe26c4e3ee5a53bf03c5467ff2f02a831c94b707d455:mCIgmxGBoZBGKgL6vkc7xIcZcKUwYQvd:1
v.0登入成功後將主動升級v.1用sha256重寫password_hash
osCommerce 2.4.3.1 table customers->customers_password:
format v.1 -> hash(md5) : salt (2digit)
df7cde40bc6922f8a885a21ebe8fd4b0:70
format v.2 -> $P$ + D(重複作md5次數 D=2^13=8192次) + salt (64進位 8digit) + hash (64進位 21+1digit 最後1位2bit=21*6+2=128=32*4=16進位 32digit)
$P$ D NVAIbn8k ZQQop6d3QAg2lFVkSG2o2 /
./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz (64進位) -> 0123456789abcdef (16進位)
migrate osc to mag2
v.1 -> osc + : + 0
df7cde40bc6922f8a885a21ebe8fd4b0:70 -> df7cde40bc6922f8a885a21ebe8fd4b0:70:0
v.2 -> osc + : + osc去掉首位$ + : + 0
利用mag2的salt位置傳遞存檔hash,新增程式判斷若為osc v.2,則字首加上$後依v.2規則產生hash,比對若正確後回送hash
$P$DNVAIbn8kZQQop6d3QAg2lFVkSG2o2/ -> $P$DNVAIbn8kZQQop6d3QAg2lFVkSG2o2/:P$DNVAIbn8kZQQop6d3QAg2lFVkSG2o2/:0
$P$DYd3TBSaZT6C85hm5amzC8RwGcu3Pf. -> $P$DYd3TBSaZT6C85hm5amzC8RwGcu3Pf.:P$DYd3TBSaZT6C85hm5amzC8RwGcu3Pf.:0
joe /var/www/html/magento8pm/vendor/magento/framework/Encryption/Encryptor.php
1.)新增產生osc v.2的password hash
public function GenPasswordHash($password,$setting){
$itoa64='./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
$count_log2 = strpos($itoa64,$setting[3]);
if ($count_log2 < 7 || $count_log2 > 30)return $output;
$count = 1 << $count_log2;
$salt = substr($setting, 4, 8);
if (strlen($salt) != 8)return $output;
if (PHP_VERSION >= '5') {
$hash = md5($salt . $password, TRUE);
do {
$hash = md5($hash . $password, TRUE);
} while (--$count);
}
else {
$hash = pack('H*', md5($salt . $password));
do {
$hash = pack('H*', md5($hash . $password));
} while (--$count);
}
$output = substr($setting, 0, 12);
$tmpout = '';
$count=16;
$i = 0;
do {
$value = ord($hash[$i++]);
$tmpout .= $itoa64[$value & 0x3f];
if ($i < $count)$value |= ord($hash[$i]) << 8;
$tmpout .= $itoa64[($value >> 6) & 0x3f];
if ($i++ >= $count)break;
if ($i < $count)$value |= ord($hash[$i]) << 16;
$tmpout .= $itoa64[($value >> 12) & 0x3f];
if ($i++ >= $count)break;
$tmpout .= $itoa64[($value >> 18) & 0x3f];
}while ($i < $count);
$output .= $tmpout;
return $output;
}
2.)修改原有的isValidHash(),加入判斷利用salt位置傳遞的hash值是否為osc v.2,並比對由GenPasswordHash()產生的v.2 hash是否正確
public function isValidHash($password, $hash)
{
$this->explodePasswordHash($hash);
foreach ($this->getPasswordVersion() as $hashVersion) {
// $password = $this->hash($this->getPasswordSalt() . $password, $hashVersion);
//----- 20191109 DV -------
//--- check if RO Site 2nd password hash ($P$D... 33 digit)->(P$D... 32 digit)
$tmpsalt=$this->getPasswordSalt();
if($hashVersion==0 && substr($tmpsalt,0,3)=='P$D'){
//--- make hash by salt
$tmpsalt="$".$tmpsalt;
//--- check if password OK with SQL hash($ + P$D..)
if($this->GenPasswordHash($password,$tmpsalt)==$tmpsalt){
//--- set password -> generated hash
$password=$tmpsalt;
}
}
else{
$password=$this->hash($tmpsalt.$password,$hashVersion);
}
//-----
}
return Security::compareStrings(
$password,
$this->getPasswordHash()
);
}
magento2 核心密碼比對程式
01.)D:/Temp-Downloads/AWS/8pm-zip/vendor/zendframework/zend-crypt/src/Utils.php -> public static function compareStrings($expected, $actual) -> 逐ord()比對產生Hash vs SQLHash -> return true
02.)D:/Temp-Downloads/AWS/8pm-zip/vendor/magento/framework/Encryption/Helper/Security.php -> public static function compareStrings($expected, $actual) -> by pass call (01) -> return true
03.)D:/Temp-Downloads/AWS/8pm-zip/vendor/magento/framework/Encryption/Encryptor.php -> public function isValidHash($password, $hash) ->展開SQLHash成passwordHashMap array,根據不同$hashVersion()+getPasswordSalt()+password產生Hash -> 比對SQLHash+getPasswordHash() call (02) -> return true
03-1.)D:/Temp-Downloads/AWS/8pm-zip/vendor/magento/zendframework1/library/Zend/Crypt.php -> public static function hash($algorithm, $data, $binaryOutput = false)實際產生Hash for (03)
研究用only
/var/www/html/magento8pm/vendor/magento/module-customer/Model/AccountManagement.php
cd /var/www/html/magento8pm/vendor/magento/module-customer/Model/
mv AccountManagement.php-x AccountManagement.php
wget http://61.220.188.84/dv-2019-tmp/AccountManagement.php
wget http://61.220.188.84/dv-2019-tmp/PasswordHash.x
----------------
https://blog.csdn.net/chengfei112233/article/details/6939144/
密码生成方式
> 随机产生一个salt 并将salt和password相加
> 进行了count次md5 然后和encode64的hash数值累加
> 最后得到一个以$P$开头的密码,这个密码每次产生的结果都不一样C:/Users/dv-10/Desktop/catalog/includes/classes/passwordhash.php
系统:MD5(WordPress)
例子:$P$B123456780BhGFYSlUqGyE6ErKErL01
说明:WordPress使用的md5
长度:34个字符
描述:$P$表示加密类型,然后跟着一位字符,经常是字符‘B’,后面是8位salt,后面是就是hash
加密算法:8192次md5循环加密 -> 2的(8+5=13)次方=8192
--- 20191107 遷移舊RO站客戶資料 -> 一元站
=========================================================================================================================
/var/www/html/magento8pm/app/design/frontend/Zou/demo/
x->joe /usr/local/apache/conf/httpd.conf
x->joe /etc/apache2/apache2.conf