SOUNDCRYPT

craftsystem Messages postés 143 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 7 mars 2009 - 24 sept. 2007 à 21:14
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 - 29 janv. 2008 à 22:09
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/44187-soundcrypt

cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
29 janv. 2008 à 22:09
Et puis il y a aussi l'aspect commercial..
tant que tu utilises un source en citant son auteur qui l'a publié(et qui autorisé sa recopie) tout va bien..

Mais si tu vends un programme avec le source d'un autre et que tu empoches des sous...
Là les difficultés commencent..

Mais comme nous sommes tous désintéressés !
n'est-ce pas ?
no problemo.
craftsystem Messages postés 143 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 7 mars 2009
29 janv. 2008 à 21:43
C'est sûre Cantador mais c'est aussi les aléas de l'open source

c'est sur que si nous avions les originaux cela serait plus simple mais je doute qu'une telle chose soit possible.
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
29 janv. 2008 à 21:17
@craftsystem :
La difficulté est de savoir si tel ou tel code est bien de son auteur.
Ce qui n'est pas évident à priori..car pour çà, il faudrait que l'original soit déposé quelque part..
C'était le sens de ma remarque;De la même manière qu'une mélodie
est enregistrée à la SACEM.

Cela ne nous prive pas d'avoir du respect.
craftsystem Messages postés 143 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 7 mars 2009
29 janv. 2008 à 14:10
se n'est pas une question de protèger c'est droits

c'est juste une question de respect pour les personnes qui nous aide rien de plus rien de moin.
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
27 sept. 2007 à 11:57
@foxi :
Je suis d'accord sur le principe de citer l'auteur mais
Est-ce que DelphiFr est habilité à protéger ses droits ?
quelle est la version originale ?
pas simple tout çà..
craftsystem Messages postés 143 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 7 mars 2009
25 sept. 2007 à 22:58
je suis deja dessus mais sur un autre projet
en libertybasic

des que je le fini je l'interpréterais en Delphi

tous mes projet passe par libertybasic...

enGros:
Au chargement du son celui-ci se position sur une piste audio fantome
une seconde piste audio fantôme est presente mes
celle_ci et deja charger avec (se que j'appelle la bidre)
un texte audio fais avec TextAloudMp3,

mais sa fais longtemps que je suis dessus, je n'arrive toujours pas a exporter le montage final...
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
25 sept. 2007 à 22:38
Salut,

Comme dit Flo, ce serait rigolo (mais pas simple, surtout en mp3).




Je surenchéris:
- pourquoi pas un message audio subliminal o|O ?

:)))
craftsystem Messages postés 143 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 7 mars 2009
25 sept. 2007 à 20:41
cela doit etre faisable

et en plus c'est une bonne idée je trouve
je vais me penché dessus

si tu a d'autre sugestion c'est avec grand plaisir

merci
Salut !

Ce qui serait rigolo (mais sûrement moins simple à faire), c'est de masquer le son (ou n'importe quelle donnée d'ailleurs) dans un fichier mp3, en se basant sur le même principe que la stéganographie d'images.

En gros, le son serait lisible mais il contiendrait un son caché... et il faudrait avoir la clé pour le déchiffrer.

Possible ? Impossible ?
En tenant compte de la distorsion sonore engendrée par les fichiers mp3, faudrait que le message reste intact, ce qui n'est pas garanti...
craftsystem Messages postés 143 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 7 mars 2009
25 sept. 2007 à 12:54
merci Japee
pour se bug

j'en ai trouver un autre pas mal non plus
si tu "ouvre un fichier son" puis un autre tu constateras
qu'il n'y a que le premier qui a été charger en lecture

jolie sa!!!
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
25 sept. 2007 à 09:20
Si l'utilisateur ouvre OpenDialog1 et le referme sans sélection de fichier, gros plantage dû à l'appel du Timer qui cite MediaPlayer.Position alors que ce dernier n'est pas ouvert.

Cette ligne vérifie l'ouverture du MediaPlayer et supprime le problème :

procedure TForm1.Timer1Timer(Sender: TObject);
...
begin
if MediaPlayer1.DeviceID = 0 then Exit;
... // suite du code
end
craftsystem Messages postés 143 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 7 mars 2009
25 sept. 2007 à 02:34
fOxi

cette partit du code m'interresse

if c = 1 then
deletefile('C:\Windows\D-Krypt.wav');

mais je doute quel fonctionne

Car je me suis rendu compte
que pour pouvoir delete un fichier il fallait un:

mediaplayer1.close;

dans mon cas j'ai tester mais il bug

A pars sa je souhaiterais enregistrer le fichier décrypter mais pas toujours avec le meme nom mais avec des numeros:
D-Krypt01
D-Krypt02
D-Krypt03
...

si on peut m'aider
craftsystem Messages postés 143 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 7 mars 2009
25 sept. 2007 à 02:26
je suis franchement désolé
c'est un oublie involontaire

tu le sais je signale toujours
qui m'a aidé et à qui j'ai pris du code.

sinon merci pour la version courte

a force de tester des truc, j'oublie d'enlever des fonction inutile, variable non utiliser,
je ferais des effort de se coté là promis

------------------------------------------------------------

pour le c:\Windows le problème est réglé
en fin de compte je sauvegarde le fichier décrypter
dans un répertoire spécial de windows qui n'est autre que le
repertoire "Fonts"

Eh, Oui j'ai constater que se repertoire cacher mon fichier d'une façon surprenante
meme une recherche du fichier dans le disque dure entier ne le trouve pas...Magique
je réglé quelque truc et je fais la mise a jour

Encore désolé fOxi de ne pas avoir cité ton code Xor
alors quand plus c'est le plus important
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
25 sept. 2007 à 02:14
version épurée (peut y'avoir un bug, j'ai pas verifier) :

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, MPlayer, ExtCtrls, Gauges, ComCtrls,
GraphicGauge, Menus;

type
TForm1 = class(TForm)
MediaPlayer1: TMediaPlayer;
OpenDialog1: TOpenDialog;
Label2: TLabel;
Timer1: TTimer;
ListBox1: TListBox;
StatusBar1: TStatusBar;
Panel1: TPanel;
Gauge1: TGraphicGauge;
PopupMenu1: TPopupMenu;
Play1: TMenuItem;
Stop1: TMenuItem;
Pause1: TMenuItem;
Shape1: TShape;
BitBtn5: TImage;
BitBtn4: TImage;
BitBtn6: TImage;
BitBtn2: TImage;
BitBtn3: TImage;
BitBtn1: TImage;
Supprimer1: TMenuItem;
Image2: TImage;
OpenDialog3: TOpenDialog;
Quitter1: TMenuItem;
Shape2: TShape;
Image3: TImage;
procedure BitBtn5Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure BitBtn6Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure ListBox1Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);

procedure Supprimer1Click(Sender: TObject);
procedure Image2Click(Sender: TObject);
procedure Quitter1Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);

private
{ Déclarations privées }

public
{ Déclarations publiques }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

var
y: byte = 0;
a: integer = 0;
b: integer = 0;
c: integer = 0;
f: integer = 0;
InFileName, OutFileName, Key: string;

function DecodeMPTime(const MilliSeconds : integer; out H,M,S,Z : word);
begin
Z := MilliSeconds mod 1000;
S := (MilliSeconds div 1000) mod 60;
M := (MilliSeconds div 60000) mod 60;
H := MilliSeconds div 3600000;
end;

procedure XorCypher(const InFileName, OutFileName, Key: string);
var InFlux, OutFlux: TFileStream;
Buffer: byte;
pKey: PChar;
M, KeyL, KeyP: integer;
function GetNextKey: byte;
begin
result := byte(pKey[KeyP]);
KeyP := (KeyP + 1) mod KeyL;
end;
begin
KeyL := Length(Key);
KeyP := 0;
pKey := PChar(Key);

InFlux := TFileStream.Create(InFileName, fmOpenRead);
try

OutFlux := TFileStream.Create(OutFileName, fmCreate);
try

form1.Gauge1.Progress := 0;
form1.Gauge1.MaxValue := InFlux.Size;

for M := 0 to InFlux.Size - 1 do
begin
InFlux.ReadBuffer(Buffer, 1); // on lit
Buffer := Buffer xor GetNextKey; // on code
OutFlux.WriteBuffer(Buffer, 1); // on ecrit

if (M mod 5) = 0 then
begin
form1.Gauge1.Progress := InFlux.Position;
application.ProcessMessages;
end;
end;

finally
OutFlux.Free;
end;

finally
InFlux.Free;
end;

form1.Gauge1.Progress := 0;
end;

procedure TForm1.BitBtn5Click(Sender: TObject);

begin
if ListBox1.ItemIndex = -1 then
exit;

if c = 1 then
deletefile('C:\Windows\D-Krypt.wav');

Timer1.Enabled := True;
MediaPlayer1.Play;
y := 1;
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
var
fichier : ansistring;
begin
Timer1.Enabled := not OpenDialog1.Execute;
if not Timer1.Enabled then
begin
key := '33';
InFileName := OpenDialog1.FileName;
OutFileName := 'C:\Windows\D-Krypt.wav';
XorCypher(InFileName, OutFileName, key);

fichier := 'C:\Windows\D-Krypt.wav';
ListBox1.Items.Add('D-Krypt.wav');
a := a + 1;
Timer1.Enabled :y 1;
if not Timer1.Enabled then
begin
ListBox1.ItemIndex := 0;
MediaPlayer1.Close;
MediaPlayer1.FileName := fichier;
MediaPlayer1.Open;
MediaPlayer1.timeFormat := tfMilliseconds;
end;
end;
end;

procedure TForm1.BitBtn4Click(Sender: TObject);
begin
if ListBox1.ItemIndex = -1 then
exit;

MediaPlayer1.Pause;
end;

procedure TForm1.BitBtn6Click(Sender: TObject);
begin
if ListBox1.ItemIndex = -1 then
exit;

MediaPlayer1.Stop;
MediaPlayer1.Position := 0;

y := 0;
f := 0;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var H,M,S,Z : word;
begin
DecodeMPTime(MediaPlayer1.Length, H,M,S,Z);

Label2.Caption := format('%.2d:%.2d',[M,S]);;

Gauge1.MaxValue := MediaPlayer1.Length;
Gauge1.Progress := MediaPlayer1.Position;
end;

procedure TForm1.FormActivate(Sender: TObject);
begin
deletefile('C:\Windows\D-Krypt.wav');
Timer1.Enabled := false;
end;

procedure TForm1.ListBox1Click(Sender: TObject);
begin
a := ListBox1.ItemIndex;
if a = -1 then
Exit;

MediaPlayer1.Close;
MediaPlayer1.Enabled := True;
MediaPlayer1.FileName := ListBox1.Items.Strings[ListBox1.ItemIndex];
MediaPlayer1.Open;
MediaPlayer1.timeFormat := tfMilliseconds;
Timer1.Enabled := True;

if y = 1 then
MediaPlayer1.Play;
end;

procedure TForm1.BitBtn3Click(Sender: TObject);
begin
if ListBox1.ItemIndex = -1 then
Exit;

if ListBox1.ItemIndex = 0 then
ListBox1.ItemIndex := (a - 1)
else
ListBox1.ItemIndex := (ListBox1.ItemIndex) - 1;

MediaPlayer1.Close;
MediaPlayer1.FileName := ListBox1.Items.Strings[ListBox1.ItemIndex];
MediaPlayer1.Open;
MediaPlayer1.timeFormat := tfMilliseconds;

if y = 1 then
MediaPlayer1.Play;
end;

procedure TForm1.BitBtn2Click(Sender: TObject);
begin
if ListBox1.ItemIndex = -1 then
exit;

if (ListBox1.ItemIndex + 1) = a then
ListBox1.ItemIndex := -1;

ListBox1.ItemIndex := ((ListBox1.ItemIndex) + 1);
MediaPlayer1.Close;
MediaPlayer1.FileName := ListBox1.Items.Strings[ListBox1.ItemIndex];
MediaPlayer1.Open;
MediaPlayer1.timeFormat := tfMilliseconds;

if y = 1 then
MediaPlayer1.Play;
end;

procedure TForm1.Supprimer1Click(Sender: TObject);
begin
listbox1.Items.Clear;
end;

procedure TForm1.Image2Click(Sender: TObject);
begin
Timer1.Enabled := not OpenDialog3.Execute;

if not Timer1.Enabled then
begin
Caption := OpenDialog3.FileName;
ListBox1.Items.Add(OpenDialog3.FileName);
a := a + 1; Timer1.Enabled :y 1;
if not Timer1.Enabled then
begin
ListBox1.ItemIndex := 0;
MediaPlayer1.Close;
MediaPlayer1.FileName := ListBox1.Items.Strings[ListBox1.ItemIndex];
MediaPlayer1.Open;
MediaPlayer1.timeFormat := tfMilliseconds;
end;
end;
end;

procedure TForm1.Quitter1Click(Sender: TObject);
begin
listbox1.Items.Clear;
MediaPlayer1.Close;
Timer1.Enabled := false;
Close;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
DeleteFile('C:\Windows\D-Krypt.wav');
end;

end.

et merci de me citer dans la source pour XorCypher ... ;)
craftsystem Messages postés 143 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 7 mars 2009
24 sept. 2007 à 21:27
Je précise que le lecteur est la base d'une source de se site
si je me rappelle bien c'est une source d'alexandre
si se n'est pas sa vueillez m'escuser
craftsystem Messages postés 143 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 7 mars 2009
24 sept. 2007 à 21:14
J'aimerais prochainement que le fichier sauvegarder detecte la lettre du disque dure car pour le moment il et configurer a C:\Windows
Rejoignez-nous